diff options
Diffstat (limited to 'views')
| -rw-r--r-- | views/js/admin.js | 2 | ||||
| -rw-r--r-- | views/mods/mod_rechnungen/order_view.phtml | 342 | ||||
| -rwxr-xr-x | views/mods/mod_rechnungen/order_view_orderdata_after.phtml | 378 | ||||
| -rw-r--r-- | views/mods/mod_rechnungen/order_view_row.phtml | 74 |
4 files changed, 324 insertions, 472 deletions
diff --git a/views/js/admin.js b/views/js/admin.js index 2e36305..cd1c4dc 100644 --- a/views/js/admin.js +++ b/views/js/admin.js @@ -109,6 +109,8 @@ jQuery.fn.wpsg_tab = function(options) { var aktTab = 1;
+ if (options.aktTab) aktTab = options.aktTab;
+
if (jQuery.cookie(options['cookiename']) != null && jQuery.cookie(options['cookiename']) > 0)
{
aktTab = jQuery.cookie(options['cookiename']);
diff --git a/views/mods/mod_rechnungen/order_view.phtml b/views/mods/mod_rechnungen/order_view.phtml index 12b4482..9a900b3 100644 --- a/views/mods/mod_rechnungen/order_view.phtml +++ b/views/mods/mod_rechnungen/order_view.phtml @@ -5,305 +5,53 @@ */
?>
-
-<script type="text/javascript">
-
- function wpsg_mod_rechnungen_storno()
- {
-
- if (jQuery('#wpsg_rechnungen_gutschrift1').attr('checked') || jQuery('#wpsg_rechnungen_gutschrift2').attr('checked'))
- {
-
- window.setTimeout(function() {
- location.href = '<?php
-
- echo wpsg_admin_url('Order', 'view', ['edit_id' => $this->view['data']['id']]);
-
- ?>';
- }, 1000);
-
- }
-
- return true;
-
- }
-
- jQuery(document).ready(function() {
-
- jQuery("#wpsg_rechnungen_postbox_title").bind("click", function() {
- if (jQuery(this.parentNode).hasClass("closed"))
- {
-
- jQuery.cookie("wpsg_rechnungen_field", "0", { expires: 999999 } );
-
- }
- else
- {
-
- jQuery.cookie("wpsg_rechnungen_field", "1", { expires: 999999 } );
-
- }
- } );
-
- if (jQuery.cookie("wpsg_rechnungen_field") == "1")
- {
-
- jQuery("#wpsg_rechnungen_postbox").removeClass("closed");
- }
-
- jQuery('.wpsg_rechnungen_gutschrift').bind('change', function() {
-
- if (jQuery('#wpsg_rechnungen_gutschrift1').prop('checked') || jQuery('#wpsg_rechnungen_gutschrift2').prop('checked'))
- {
-
- jQuery('#wpsg_mod_rechnungen_fee_layer').show();
- jQuery('#wpsg_mod_rechnungen_stornopreview').show();
- jQuery('#wpsg_rechnungen_stornobutton').attr('value', '<?php echo __('Rechnungskorrektur erstellen', 'wpsg'); ?>');
-
- }
- else
- {
-
- jQuery('#wpsg_mod_rechnungen_fee_layer').hide();
- jQuery('#wpsg_mod_rechnungen_stornopreview').hide();
- jQuery('#wpsg_rechnungen_stornobutton').attr('value', '<?php echo __('Rechnung stornieren', 'wpsg'); ?>');
-
- }
-
- } );
-
- jQuery('#wpsg_rechnungen_gutschrift0').change();
-
- } );
-
-</script>
-
-<?php echo wpsg_drawForm_AdminboxStart(__('Rechnungen', 'wpsg')); ?>
-
- <?php if (sizeof($this->view['mod_rechnungen']['arRechnungen']) == 0 && sizeof($this->view['mod_rechnungen']['arRechnungen_storno']) == 0) { ?>
+
+<div id="wpsg_mod_rechnungen_order_view">
+
+ <?php echo wpsg_drawForm_AdminboxStart(__('Rechnungen', 'wpsg')); ?>
+
+ <?php if (sizeof($this->view['mod_rechnungen']['arRechnungen']) == 0 && sizeof($this->view['mod_rechnungen']['arRechnungen_storno']) == 0) { ?>
+
<p><?php echo __('Bisher keine Rechnungen geschrieben.', 'wpsg'); ?></p>
- <?php } else { ?>
- <table>
- <?php foreach ($this->view['mod_rechnungen']['arRechnungen_gesamt'] as $r) { ?>
- <tr>
- <td>#<?php echo (($r['rnr'] != '')?$r['rnr']:$r['gnr']); ?>
-
- <?php if ($r['storno'] == "0000-00-00 00:00:00") { ?>
- <?php if ($r['gnr'] != "") { ?>
- <?php echo wpsg_translate(__('Rechnungskorrektur vom #1#', 'wpsg'), date("d.m.Y", $r['ts_datum'])); ?>
- <?php } else { ?>
- <?php echo wpsg_translate(__('Rechnung geschrieben am #1#', 'wpsg'), date("d.m.Y", $r['ts_datum'])); ?>
- <?php } ?>
- <?php } else { ?>
- <?php echo wpsg_translate(__("Rechnung storniert am #1#", "wpsg"), date("d.m.Y", $r['ts_storno'])); ?>
- <?php } ?>
-
- </td>
- <td style="text-align:right;">
-
- <?php
-
- if ($r['rnr'] != "")
- {
- $rfile = $this->callMod('wpsg_mod_rechnungen', 'getFilePath', array($this->view['data']['id'], true)).'R'.$r['rnr'].'.pdf';
- }
- else if ($r['gnr'] != "")
- {
- $rfile = $this->callMod('wpsg_mod_rechnungen', 'getFilePath', array($this->view['data']['id'], true)).'G'.$r['gnr'].'.pdf';
- }
-
+
+ <?php } else { ?>
+
+ <div class="grid">
+
+ <?php foreach ($this->view['mod_rechnungen']['arRechnungen_gesamt'] as $r) {
+
+ $oInvoice = \wpsg\wpsg_invoice::getInstance($r['id']);
+
?>
-
- <a target="_blank" onclick="if (!confirm('<?php echo __('Sind Sie sicher, dass Sie eine Kopie dieser Rechnung/Rechnungskorrektur erneut an den Kunden senden möchten?', 'wpsg'); ?>')) return false;" href="<?php
-
- echo wp_nonce_url(WPSG_URL_WP.'wp-admin/admin.php?page=wpsg-Order&mod=wpsg_mod_rechnungen&noheader=1&action=ajax&edit_id='.$this->view['data']['id'].'&r_id='.$r['id'].'&do=copy', 'wpsg-mod_invoice-order_ajax-copy-'.$this->view['data']['id']);
-
- ?>"><?php echo ' '.__("Kopie senden", "wpsg"); ?></a>
- <a target="_blank" href="<?php
-
- echo wp_nonce_url(WPSG_URL_WP.'wp-admin/admin.php?page=wpsg-Order&action=ajax&noheader=1&mod=wpsg_mod_rechnungen&do=getRechnung&edit_id='.$this->view['data']['id'].'&r_id='.$r['id'], 'wpsg-mod_invoice-order_ajax-getRechnung-'.$r['id']);
-
- ?>"><?php echo __("Ansehen", "wpsg"); ?></a>
-
- </td>
- </tr>
- <?php } ?>
- </table>
- <br />
- <?php } ?>
-
- <?php if (sizeof($this->view['mod_rechnungen']['arRechnungen']) > 0 && sizeof($this->view['mod_rechnungen']['arRechnungen_gesamt']) != sizeof($this->view['mod_rechnungen']['arRechnungen_storno'])) { ?>
- <fieldset style="border:0px solid #999999; width:100%;">
- <legend ><?php echo __("Bestellstorno: Rechnungskorrektur erstellen", "wpsg"); ?></legend>
- <div style="padding:10px;">
- <form id="storno_form" target="_blank" method="post" action="<?php echo WPSG_URL_WP; ?>wp-admin/admin.php?page=wpsg-Order&noheader=1&action=ajax&mod=wpsg_mod_rechnungen&edit_id=<?php echo $this->view['data']['id']; ?>&do=storno">
-
- <?php \wp_nonce_field('wpsg-mod_invoice-order_ajax-storno-'.$this->view['data']['id']); ?>
-
- <input type="hidden" name="send" value="1" />
-
- <label><input onclick="jQuery.cookie('wpsg_rechnungen_stornoradio', '0');" type="radio" value="0" class="wpsg_rechnungen_gutschrift" id="wpsg_rechnungen_gutschrift0" name="wpsg_rechnungen_gutschrift" /> <?php echo __("Rechnung komplett stornieren und keine Rechnungskorrektur erstellen.", "wpsg"); ?></label><br />
- <label><input onclick="jQuery.cookie('wpsg_rechnungen_stornoradio', '1');" type="radio" value="1" class="wpsg_rechnungen_gutschrift" id="wpsg_rechnungen_gutschrift1" name="wpsg_rechnungen_gutschrift" /> <?php echo __("Rechnungskorrektur erstellen.", "wpsg"); ?></label><br />
- <label><input onclick="jQuery.cookie('wpsg_rechnungen_stornoradio', '2');" type="radio" value="2" class="wpsg_rechnungen_gutschrift" id="wpsg_rechnungen_gutschrift2" name="wpsg_rechnungen_gutschrift" /> <?php echo __("Rechnungskorrektur erstellen und an Kunden senden.", "wpsg"); ?></label><br />
-
- <div id="wpsg_mod_rechnungen_fee_layer" style="display:none;">
- <?php echo wpsg_drawForm_Input('wpsg_mod_rechnungen_fee', __('Gebühr für Rechnungskorrektur', 'wpsg'), ''); ?>
+
+ <div>
+ <?php echo $oInvoice->getDate(true); ?>
</div>
-
- <div class="wpsg_clear"></div><br />
-
- <br />
-
- <?php echo wpsg_drawForm_Select('wpsg_mod_rechnungen_new_state', __('Neuer Bestellstatus', 'wpsg'), ['-1' => __('Keine Änderung', 'wpsg')] + $this->arStatus, wpsg_ShopController::STATUS_STORNIERT); ?>
-
- <br />
-
- <input onclick="return wpsg_mod_rechnungen_storno();" id="wpsg_rechnungen_stornobutton" class="button" type="submit" name="form_submit" value="<?php echo __("Stornieren", "wpsg"); ?>" style="float:right;" />
- <input id="wpsg_mod_rechnungen_stornopreview" class="button" type="submit" name="form_submit_preview" value="<?php echo __('Vorschau', 'wpsg'); ?>" style="float:right; margin-right:10px;" />
-
- <script type="text/javascript">
-
- jQuery(document).ready(function() {
-
- jQuery("[name=wpsg_rechnungen_gutschrift]").filter("[value=" + jQuery.cookie("wpsg_rechnungen_stornoradio") + "]").prop("checked","checked");
-
- jQuery("#wpsg_rechnungen_stornobutton").bind("click", function() {
-
- if (jQuery("#wpsg_rechnungen_gutschrift1").prop("checked") || jQuery("#wpsg_rechnungen_gutschrift2").prop("checked"))
- {
-
- //jQuery("#storno_form").attr("action", "<?php echo WPSG_URL_WP; ?>wp-admin/admin.php?page=wpsg-Order&noheader=1&action=ajax&mod=wpsg_mod_rechnungen&edit_id=<?php echo $this->view['data']['id']; ?>&do=storno");
- jQuery("#storno_form").attr("target", "_blank");
-
- window.setTimeout(function() {
- location.href = "<?php
-
- echo wpsg_admin_url('Order', 'view', ['edit_id' => $this->view['data']['id']]);
-
- ?>";
- }, 1500);
-
- }
- else
- {
-
- //jQuery("#storno_form").attr("action", "<?php echo WPSG_URL_WP; ?>wp-admin/admin.php?page=wpsg-Order&action=ajax&mod=wpsg_mod_rechnungen&edit_id=<?php echo $this->view['data']['id']; ?>&do=storno");
- jQuery("#storno_form").attr("target", "");
-
- }
-
- });
-
- });
-
- </script>
-
- </form>
-
- <div class="wpsg_clear"></div><br />
-
- <div class="wpsg_hinweis"><?php echo __("Eine neue Rechnung kann erst geschrieben werden wenn alle bestehenden Rechnungen zu dieser Bestellung storniert wurden.", "wpsg"); ?></div>
- <div class="wpsg_clear"></div>
- </div>
- </fieldset>
- <?php } else { ?>
-
- <fieldset>
- <legend><?php echo __("Neue Rechnung", "wpsg"); ?></legend>
-
- <div>
-
- <form target="_blank" method="post" id="rechnungen_order_backend" action="<?php echo WPSG_URL_WP; ?>wp-admin/admin.php?page=wpsg-Order&action=ajax&mod=wpsg_mod_rechnungen&cmd=rechnung&noheader=1&edit_id=<?php echo $this->view['data']['id']; ?>">
-
- <?php \wp_nonce_field('wpsg-mod_invoice-order_ajax-rechnung-'.$this->view['data']['id']); ?>
-
- <input type="hidden" name="send" value="1" />
-
- <label style="height:25px; width:240px; float:left; margin-top:10px;">
- <input onchange="if (this.checked) jQuery('#wpsg_rechnungen_email').show(); else jQuery('#wpsg_rechnungen_email').hide();" type="checkbox" checked="checked" value="1" name="wpsg_rechnungen_sendmail" />
- <?php echo __("E-Mail an Kunden senden", "wpsg"); ?>
- </label>
- <input type="text" style="display:block; width:300px; float:right;" id="wpsg_rechnungen_email" name="wpsg_rechnungen_email" value="<?php echo wpsg_hspc($this->view['data']['email']); ?>" />
- <div style="clear:both; width:100%; height:5px;"></div>
-
- <label style="height:25px; width:240px; float:left;">
- <input checked="checked" onchange="if (this.checked) jQuery('#wpsg_rechnungen_faelligkeitsdatum').show(); else jQuery('#wpsg_rechnungen_faelligkeitsdatum').hide();" type="checkbox" value="1" name="wpsg_rechnungen_faelligkeit" />
- <?php echo __("Fälligkeit anzeigen", "wpsg"); ?>
- </label>
- <input type="text" style="display:block; width:300px; float:right;" id="wpsg_rechnungen_faelligkeitsdatum" name="wpsg_rechnungen_faelligkeitsdatum" value="<?php echo @date("d.m.Y", time() + ($this->get_option("wpsg_rechnungen_faelligkeit") * 86400)); ?>" />
- <div style="clear:both; width:100%; height:5px;"></div>
-
- <label style="height:25px; width:220px; float:left;">
- <input checked="checked" onchange="if (this.checked) jQuery('#wpsg_rechnungen_status').show(); else jQuery('#wpsg_rechnungen_status').hide();" type="checkbox" value="1" name="wpsg_rechnungen_status" />
- <?php echo __("Neuer Status", "wpsg"); ?>
- </label>
- <select style="width:300px; float:right;" id="wpsg_rechnungen_status_neu" name="wpsg_rechnungen_status_neu">
- <?php foreach ($this->arStatus as $k => $v) { ?>
- <option value="<?php echo $k; ?>" <?php echo (($k == 110)?'selected="selected"':''); ?>><?php echo $v; ?></option>
- <?php } ?>
- </select>
- <div style="clear:both; width:100%; height:5px;"></div>
-
- <label style="height:25px; width:240px; float:left;">
- <input <?php echo (($this->get_option("wpsg_rechnungen_url_std") === "1")?'checked="checked"':''); ?> type="checkbox" value="1" name="wpsg_rechnungen_url" />
- <?php echo __("URL Benachrichtigung", "wpsg"); ?>
- </label>
- <div style="clear:both; width:100%; height:5px;"></div>
-
- <label style="height:25px; width:240px; float:left; padding-left:22px;">
- <?php echo __("Rechnungsdatum", "wpsg"); ?>
- </label>
- <input style="display:block;float:right; width:300px;" type="text" id="wpsg_rechnungen_datum" name="wpsg_rechnungen_datum" value="<?php echo date("d.m.Y", time()); ?>" />
- <div style="clear:both; width:100%; height:5px;"></div>
-
- <label for="wpsg_rechnungen_fusstext" style="height:25px; width:220px; padding-left:22px; float:left">
- <?php echo __("Fußtext", "wpsg"); ?>
- </label>
-
- <?php
-
- $wpsg_rechnungen_footer = $this->get_option("wpsg_rechnungen_footer");
+ <div>
+ <?php echo $oInvoice->getNr(true); ?>
+ </div>
+ <div style="text-align:right;">
- if (!is_array($wpsg_rechnungen_footer)) $wpsg_rechnungen_footer = unserialize($this->get_option("wpsg_rechnungen_footer"));
- if (!is_array($wpsg_rechnungen_footer)) $wpsg_rechnungen_footer = Array();
-
- $default = $this->get_option('wpsg_rechnungen_foottext_standard');
-
- ?>
-
- <?php if (sizeof($wpsg_rechnungen_footer) > 0) { ?>
- <select style="width:300px; float:right;" id="wpsg_rechnungen_select" onchange="jQuery('#wpsg_rechnungen_fusstext').val(this.value);">
- <?php foreach ($wpsg_rechnungen_footer as $k => $v) { ?>
- <option value="<?php echo wpsg_hspc($v[1]); ?>" <?php echo ((intval($default) === intval($k))?'selected="selected"':''); ?>><?php echo wpsg_hspc($v[0]); ?></option>
- <?php } ?>
- </select>
- <?php } ?>
-
- <div style="clear:both; width:100%; height:5px;"></div>
- <div style="padding-left:25px;"><input style="width:100%;" type="text" name="wpsg_rechnungen_fusstext" id="wpsg_rechnungen_fusstext" value="" /></div>
- <div style="clear:both; width:100%; height:15px;"></div>
-
- <script type="text/javascript">
-
- jQuery(document).ready(function() {
- jQuery('#wpsg_rechnungen_fusstext').val(jQuery("#wpsg_rechnungen_select").val());
- });
-
- </script>
-
- <input class="button" style="float:right;" onclick="window.setTimeout(function() { location.href = '<?php
-
- echo wpsg_admin_url('Order', 'view', ['edit_id' => $this->view['data']['id']]);
-
- ?>'; }, 1000);" name="wpsg_rechnungen_write" type="submit" value="<?php echo __("Rechnung schreiben", "wpsg"); ?>" />
- <input class="button" style="float:right; margin-right:10px;" name="wpsg_rechnungen_preview" type="submit" value="<?php echo __("Vorschau", "wpsg"); ?>" />
-
- <div style="clear:both; width:100%; height:5px;"></div>
-
- </form>
+ <a target="_blank" onclick="if (!confirm('<?php echo __('Sind Sie sicher, dass Sie eine Kopie dieser Rechnung/Rechnungskorrektur erneut an den Kunden senden möchten?', 'wpsg'); ?>')) return false;" href="<?php
+
+ echo wp_nonce_url(WPSG_URL_WP.'wp-admin/admin.php?page=wpsg-Order&mod=wpsg_mod_rechnungen&noheader=1&action=ajax&edit_id='.$this->view['data']['id'].'&r_id='.$r['id'].'&do=copy', 'wpsg-mod_invoice-order_ajax-copy-'.$this->view['data']['id']);
+
+ ?>"><?php echo ' '.__("Kopie senden", "wpsg"); ?></a>
+
+ </div>
+
+ <?php } ?>
+
</div>
- </fieldset>
-
- <?php } ?>
-
-<?php echo wpsg_drawForm_AdminboxEnd(); ?>
\ No newline at end of file +
+ <?php } ?>
+
+ <?php echo wpsg_drawForm_AdminboxEnd(); ?>
+
+</div>
+
+<style>
+
+ #wpsg_mod_rechnungen_order_view .grid { display:grid; width:100%; grid-template-columns:150px 1fr 100px; row-gap:0.25rem; }
+
+</style>
\ No newline at end of file diff --git a/views/mods/mod_rechnungen/order_view_orderdata_after.phtml b/views/mods/mod_rechnungen/order_view_orderdata_after.phtml index 0decca8..d202652 100755 --- a/views/mods/mod_rechnungen/order_view_orderdata_after.phtml +++ b/views/mods/mod_rechnungen/order_view_orderdata_after.phtml @@ -23,189 +23,260 @@ $default = $this->get_option('wpsg_rechnungen_foottext_standard'); + /** @var \wpsg\wpsg_invoice[] $arInvoice */ + $arInvoice = $this->callMod('wpsg_mod_rechnungen', 'getInvoiceToOrder', [$oOrder->getId()]); + + $bCanInvoice = false; + $bCanStorno = false; + + foreach ($oOrder->getOrderProducts() as $oOrderProduct) { + + if ($this->callMod('wpsg_mod_rechnungen', 'getAmountToInvoice', [$oOrderProduct]) > 0) { + + $bCanInvoice = true; + + } + + if ($this->callMod('wpsg_mod_rechnungen', 'getAmountToStorno', [$oOrderProduct]) > 0) { + + $bCanStorno = true; + + } + + if ($bCanInvoice && $bCanStorno) break; + + } + + $act = 0; + + if ($bCanInvoice) $act = 1; + else if ($bCanStorno) $act = 2; + ?> <div id="wpsg_mod_invoice_tabs"> <ul class="nav nav-tabs" role="tablist"> - <li role="presentation" class="tab akttab active" id="tab1"><a href="#tab1" role="tab" data-toggle="tab" class="bg_invoice"><?php echo __('Rechnung erstellen', 'wpsg'); ?></a></li> - <li role="presentation" class="tab" id="tab2"><a href="#tab2" role="tab" data-toggle="tab" class="bg_storno"><?php echo __('Gutschrift/Rechnungskorrektur erstellen', 'wpsg'); ?></a></li> + <?php if ($bCanInvoice) { ?> + <li role="presentation" class="tab <?php echo (($act === 1)?'akttab active':''); ?>" id="tab1"><a href="#tab1" role="tab" data-toggle="tab" class="bg_invoice"><?php echo __('Rechnung erstellen', 'wpsg'); ?></a></li> + <?php } ?> + <?php if ($bCanStorno) { ?> + <li role="presentation" class="tab <?php echo (($act === 2)?'akttab active':''); ?>" id="tab2"><a href="#tab2" role="tab" data-toggle="tab" class="bg_storno"><?php echo __('Gutschrift/Rechnungskorrektur erstellen', 'wpsg'); ?></a></li> + <?php } ?> </ul> <div class="tab-content"> - <div role="tabpanel" class="tabcontent bg_invoice" id="tabcontent1"> - - <form method="post" id="invoice_form" target="_blank" action="<?php - - echo WPSG_URL_WP.'wp-admin/admin.php?page=wpsg-Order&action=ajax&mod=wpsg_mod_rechnungen&cmd=rechnung&noheader=1&edit_id='.$oOrder->getId(); - - ?>" class="grid"> - - <?php \wp_nonce_field('wpsg-mod_invoice-order_ajax-rechnung-'.$this->view['data']['id']); ?> - - <!-- Rechnung --> - - <input type="checkbox" name="wpsg_rechnungen_sendmail" value="1" id="invoice_sendmail" checked="checked" /> - <label for="invoice_sendmail"><?php echo __('E-Mail an Kunden senden', 'wpsg'); ?></label> - <input type="email" name="wpsg_rechnungen_email" value="<?php echo $oCustomer->getEMail(); ?>" /> + <?php if ($bCanInvoice) { ?> + <div role="tabpanel" class="tabcontent bg_invoice" id="tabcontent1"> - <input type="checkbox" name="wpsg_rechnungen_faelligkeit" value="1" id="invoice_faelligkeit" checked="checked" /> - <label for="invoice_faelligkeit"><?php echo __('Fälligkeit anzeigen', 'wpsg'); ?></label> - <input type="date" name="wpsg_rechnungen_faelligkeitsdatum" value="<?php echo date('Y-m-d'); ?>" /> - - <input type="checkbox" name="wpsg_rechnungen_status" value="1" id="invoice_state" checked="checked" /> - <label for="invoice_state"><?php echo __('Neuer Status', 'wpsg'); ?></label> - <select name="wpsg_rechnungen_status_neu"> - <?php foreach ($this->arStatus as $status_key => $status_label) { ?> - <option value="<?php echo $status_key; ?>"><?php echo $status_label; ?></option> - <?php } ?> - </select> - - <input type="checkbox" name="wpsg_rechnungen_shippay" value="1" id="invoice_shippay" checked="checked" /> - <label style="grid-column:2 / span 2;" for="invoice_shippay"><?php + <form method="post" id="invoice_form" target="_blank" action="<?php + + echo WPSG_URL_WP.'wp-admin/admin.php?page=wpsg-Order&action=ajax&mod=wpsg_mod_rechnungen&cmd=rechnung&noheader=1&edit_id='.$oOrder->getId(); + + ?>" class="grid"> + + <?php \wp_nonce_field('wpsg-mod_invoice-order_ajax-rechnung-'.$this->view['data']['id']); + + $arInvoiceLabel = []; - echo __('Versand-/Zahlungskosten abrechnen', 'wpsg'); - - /** @var \wpsg\wpsg_invoice[] $arInvoice */ - $arInvoice = $this->callMod('wpsg_mod_rechnungen', 'getInvoiceToOrder', [$oOrder->getId()]); - $arInvoiceLabel = []; + foreach ($arInvoice as $oInvoice) { + + if ($oInvoice->isInvoice() && $oInvoice->getMeta('include_shipping', false, '0') === '1') { + + $arInvoiceLabel[] = $oInvoice->getNr(true); + + } + + } + + ?> - foreach ($arInvoice as $oInvoice) { + <!-- Rechnung --> + + <input type="checkbox" name="wpsg_rechnungen_sendmail" value="1" id="invoice_sendmail" checked="checked" /> + <label for="invoice_sendmail"><?php echo __('E-Mail an Kunden senden', 'wpsg'); ?></label> + <input type="email" name="wpsg_rechnungen_email" value="<?php echo $oCustomer->getEMail(); ?>" /> + + <input type="checkbox" name="wpsg_rechnungen_faelligkeit" value="1" id="invoice_faelligkeit" checked="checked" /> + <label for="invoice_faelligkeit"><?php echo __('Fälligkeit anzeigen', 'wpsg'); ?></label> + <input type="date" name="wpsg_rechnungen_faelligkeitsdatum" value="<?php echo date('Y-m-d'); ?>" /> + + <input type="checkbox" name="wpsg_rechnungen_status" value="1" id="invoice_state" /> + <label for="invoice_state"><?php echo __('Neuer Status', 'wpsg'); ?></label> + <select name="wpsg_rechnungen_status_neu"> + <?php foreach ($this->arStatus as $status_key => $status_label) { ?> + <option value="<?php echo $status_key; ?>"><?php echo $status_label; ?></option> + <?php } ?> + </select> + + <input type="checkbox" name="wpsg_rechnungen_shippay" value="1" id="invoice_shippay" <?php + + if (sizeof($arInvoiceLabel) <= 0) echo ' checked="checked" '; - if ($oInvoice->getMeta('include_shipping', false, '0')) { - - $arInvoiceLabel[] = $oInvoice->getNr(true); + ?> /> + <label style="grid-column:2 / span 2;" for="invoice_shippay"><?php + + echo __('Versand-/Zahlungskosten abrechnen', 'wpsg'); + + if (sizeof($arInvoiceLabel) > 0) { + + echo wpsg_translate(__(' (Enthalten in #1#)', 'wpsg'), implode(', ', $arInvoiceLabel)); } - } + ?></label> - if (sizeof($arInvoiceLabel) > 0) { + <input type="checkbox" name="wpsg_rechnungen_url" value="1" id="invoice_url" /> + <label for="invoice_url" style="grid-column: 2 / span 2;"><?php echo __('URL Benachrichtigung', 'wpsg'); ?></label> + + <span></span> + <label for="invoice_date"><?php echo __('Rechnungsdatum', 'wpsg') ;?></label> + <input type="date" value="<?php echo date('Y-m-d'); ?>" name="wpsg_rechnungen_datum" id="invoice_date" /> + + <span></span> + <label for="invoice_foottext_select"><?php echo __('Fußtext', 'wpsg'); ?></label> + + <?php if (sizeof($wpsg_rechnungen_footer) > 0) { ?> + <select id="invoice_foottext_select"> + <?php foreach ($wpsg_rechnungen_footer as $k => $v) { ?> + <option value="<?php echo wpsg_hspc($v[1]); ?>" <?php echo ((intval($default) === intval($k))?'selected="selected"':''); ?>><?php echo wpsg_hspc($v[0]); ?></option> + <?php } ?> + </select> + <?php } else { ?> + <span></span> + <?php } ?> + + <span></span> + <input type="text" name="wpsg_rechnungen_fusstext" id="wpsg_rechnungen_fusstext" value="" style="grid-column: 2 / span 2;" /> + + <span style="grid-column:1 / span 3;"></span> + + <span style="display:flex; justify-content:flex-end; gap:0.5rem; grid-column:1/span 3;"> - echo wpsg_translate(__(' (Enthalten in #1#)', 'wpsg'), implode(', ', $arInvoiceLabel)); + <input class="button" style="" id="invoice_wpsg_rechnungen_preview" name="wpsg_rechnungen_preview" type="submit" value="Vorschau"> + <input class="button" style="" id="invoice_wpsg_rechnungen_submit" onclick="window.setTimeout(function() { location.href = '<?php - } + echo wpsg_admin_url('Order', 'view', ['edit_id' => $oOrder->getId()]); + + ?>'; }, 1000);" name="wpsg_rechnungen_write" type="submit" value="Rechnung schreiben"> + + </span> - ?></label> - - <input type="checkbox" name="wpsg_rechnungen_url" value="1" id="invoice_url" /> - <label for="invoice_url" style="grid-column: 2 / span 2;"><?php echo __('URL Benachrichtigung', 'wpsg'); ?></label> - - <span></span> - <label for="invoice_date"><?php echo __('Rechnungsdatum', 'wpsg') ;?></label> - <input type="date" value="<?php echo date('Y-m-d'); ?>" name="wpsg_rechnungen_datum" id="invoice_date" /> - - <span></span> - <label for="invoice_foottext_select"><?php echo __('Fußtext', 'wpsg'); ?></label> - - <?php if (sizeof($wpsg_rechnungen_footer) > 0) { ?> - <select id="invoice_foottext_select"> - <?php foreach ($wpsg_rechnungen_footer as $k => $v) { ?> - <option value="<?php echo wpsg_hspc($v[1]); ?>" <?php echo ((intval($default) === intval($k))?'selected="selected"':''); ?>><?php echo wpsg_hspc($v[0]); ?></option> - <?php } ?> - </select> - <?php } else { ?> - <span></span> - <?php } ?> - - <span></span> - <input type="text" name="wpsg_rechnungen_fusstext" id="wpsg_rechnungen_fusstext" value="" style="grid-column: 2 / span 2;" /> + <script> + + let el_invoice_foottext_select = document.getElementById('invoice_foottext_select'); + let el_invoice_form = document.getElementById('invoice_form'); + + if (el_invoice_foottext_select) { + + el_invoice_foottext_select.addEventListener('change', (event) => { + + document.getElementById('wpsg_rechnungen_fusstext').value = event.target.value; - <span style="grid-column:1 / span 3;"></span> + }); + + el_invoice_foottext_select.dispatchEvent(new Event('change')); + + }; + + let el_invoice_wpsg_rechnungen_preview = document.getElementById('invoice_wpsg_rechnungen_preview'); + let el_invoice_wpsg_rechnungen_submit = document.getElementById('el_invoice_wpsg_rechnungen_submit'); + + </script> + + </form> + + </div> + <?php } ?> + + <?php if ($bCanStorno) { ?> + <div role="tabpanel" class="tabcontent bg_storno" id="tabcontent2"> - <span style="display:flex; justify-content:flex-end; gap:0.5rem; grid-column:1/span 3;"> + <form method="post" id="storno_form" target="_blank" action="<?php - <input class="button" style="" id="invoice_wpsg_rechnungen_preview" name="wpsg_rechnungen_preview" type="submit" value="Vorschau"> - <input class="button" style="" id="invoice_wpsg_rechnungen_submit" onclick="window.setTimeout(function() { location.href = '<?php + echo WPSG_URL_WP.'wp-admin/admin.php?page=wpsg-Order&noheader=1&action=ajax&mod=wpsg_mod_rechnungen&edit_id='.$oOrder->getId().'&do=storno'; - echo wpsg_admin_url('Order', 'view', ['edit_id' => $oOrder->getId()]); + ?>" class="grid"> - ?>'; }, 1000);" name="wpsg_rechnungen_write" type="submit" value="Rechnung schreiben"> + <?php \wp_nonce_field('wpsg-mod_invoice-order_ajax-storno-'.$this->view['data']['id']); - </span> - - <script> - - let el_invoice_foottext_select = document.getElementById('invoice_foottext_select'); - let el_invoice_form = document.getElementById('invoice_form'); - - if (el_invoice_foottext_select) { - - el_invoice_foottext_select.addEventListener('change', (event) => { - - document.getElementById('wpsg_rechnungen_fusstext').value = event.target.value; - - }); - - el_invoice_foottext_select.dispatchEvent(new Event('change')); - - }; - - let el_invoice_wpsg_rechnungen_preview = document.getElementById('invoice_wpsg_rechnungen_preview'); - let el_invoice_wpsg_rechnungen_submit = document.getElementById('el_invoice_wpsg_rechnungen_submit'); - - </script> + $arInvoiceLabel = []; + + foreach ($arInvoice as $oInvoice) { + + if ($oInvoice->isStorno() && $oInvoice->getMeta('include_shipping', false, '0') === '1') { + + $arInvoiceLabel[] = $oInvoice->getNr(true); - </form> - - </div> - - <div role="tabpanel" class="tabcontent bg_storno" id="tabcontent2"> - - <form method="post" id="storno_form" target="_blank" action="<?php - - echo WPSG_URL_WP.'wp-admin/admin.php?page=wpsg-Order&noheader=1&action=ajax&mod=wpsg_mod_rechnungen&edit_id='.$oOrder->getId().'&do=storno'; - - ?>" class="grid"> - - <?php \wp_nonce_field('wpsg-mod_invoice-order_ajax-storno-'.$this->view['data']['id']); ?> - - <input type="checkbox" name="storno_send" id="storno_send" value="1" /> - <label for="storno_send"><?php echo __('E-Mail an Kunden senden', 'wpsg'); ?></label> - <input type="email" name="storno_mail" value="<?php echo $oCustomer->getEMail(); ?>" /> - - <input type="checkbox" id="storno_shippay" name="storno_shippay" value="1" id="invoice_shippay" checked="checked" /> - <label style="grid-column:2 / span 2;" for="storno_shippay"><?php echo __('Versand-/Zahlungskosten stornieren', 'wpsg'); ?></label> - - <input type="checkbox" name="storno_state" value="1" id="storno_state" checked="checked" /> - <label for="storno_state"><?php echo __('Neuer Status', 'wpsg'); ?></label> - <select name="storno_state_new"> - <?php foreach ($this->arStatus as $status_key => $status_label) { ?> - <option value="<?php echo $status_key; ?>"><?php echo $status_label; ?></option> - <?php } ?> - </select> - - <input type="checkbox" name="storno_fee_set" id="storno_fee_set" value="1" id="storno_fee_set" /> - <label for="storno_fee_set"><?php echo __('Stornierungsgebühr in % oder EUR', 'wpsg'); ?></label> - <input type="text" value="" name="storno_fee_value" /> - - <span style="grid-column:1 / span 3;"></span> - - <span style="display:flex; justify-content:flex-end; gap:0.5rem; grid-column:1/span 3;"> + } + + } - <input class="button" style="" id="invoice_wpsg_storno_preview" name="wpsg_storno_preview" type="submit" value="Vorschau"> - <input class="button" style="" id="invoice_wpsg_storno_submit" onclick="window.setTimeout(function() { location.href = '<?php + ?> - echo wpsg_admin_url('Order', 'view', ['edit_id' => $oOrder->getId()]); + <!-- Gutschrift --> - ?>'; }, 1000);" name="wpsg_storno_write" type="submit" value="Rechnungskorrektur schreiben"> + <input type="checkbox" name="storno_send" id="storno_send" value="1" checked="checked" /> + <label for="storno_send"><?php echo __('E-Mail an Kunden senden', 'wpsg'); ?></label> + <input type="email" name="storno_mail" value="<?php echo $oCustomer->getEMail(); ?>" /> - </span> - - <script> + <input type="checkbox" id="storno_shippay" name="storno_shippay" value="1" id="invoice_shippay" <?php + + if (sizeof($arInvoiceLabel) <= 0) echo ' checked="checked" '; + + ?> /> + <label style="grid-column:2 / span 2;" for="storno_shippay"><?php + + echo __('Versand-/Zahlungskosten stornieren', 'wpsg'); - let el_storno_form = document.getElementById('storno_form'); - - let el_invoice_wpsg_storno_preview = document.getElementById('invoice_wpsg_storno_preview'); - let el_invoice_wpsg_storno_submit = document.getElementById('invoice_wpsg_storno_submit'); - - </script> + if (sizeof($arInvoiceLabel) > 0) { + + echo wpsg_translate(__(' (Enthalten in #1#)', 'wpsg'), implode(', ', $arInvoiceLabel)); + + } + + ?></label> + + <input type="checkbox" name="storno_state" value="1" id="storno_state" checked="checked" /> + <label for="storno_state"><?php echo __('Neuer Status', 'wpsg'); ?></label> + <select name="storno_state_new"> + <?php foreach ($this->arStatus as $status_key => $status_label) { ?> + <option value="<?php echo $status_key; ?>"><?php echo $status_label; ?></option> + <?php } ?> + </select> + + <input type="checkbox" name="storno_fee_set" id="storno_fee_set" value="1" id="storno_fee_set" /> + <label for="storno_fee_set"><?php echo __('Stornierungsgebühr in % oder EUR', 'wpsg'); ?></label> + <input type="text" value="" name="storno_fee_value" /> + + <span style="grid-column:1 / span 3;"></span> + + <span style="display:flex; justify-content:flex-end; gap:0.5rem; grid-column:1/span 3;"> + + <input class="button" style="" id="invoice_wpsg_storno_preview" name="wpsg_storno_preview" type="submit" value="Vorschau"> + <input class="button" style="" id="invoice_wpsg_storno_submit" onclick="window.setTimeout(function() { location.href = '<?php + + echo wpsg_admin_url('Order', 'view', ['edit_id' => $oOrder->getId()]); + + ?>'; }, 1000);" name="wpsg_storno_write" type="submit" value="Rechnungskorrektur schreiben"> + + </span> + + <script> + + let el_storno_form = document.getElementById('storno_form'); + + let el_invoice_wpsg_storno_preview = document.getElementById('invoice_wpsg_storno_preview'); + let el_invoice_wpsg_storno_submit = document.getElementById('invoice_wpsg_storno_submit'); + + </script> + + </form> - </form> - - </div> + </div> + <?php } ?> </div> @@ -230,14 +301,19 @@ .tabcontent.bg_storno { background-color:lightpink; color:black; } .link_invoice { transform:translateX(-5px); padding:2px 5px; font-siz:12px; text-decoration:underline; } - label[for="invoice_shippay"] .link_invoice { padding:0; } + label[for="invoice_shippay"] .link_invoice, + label[for="storno_shippay"] .link_invoice { padding:0; } + + .wpsg_mod_rechnungen_row { display:block; width:100%; padding:5px; } + .wpsg_mod_rechnungen_row .invoice_wrap:not(:only-child) { margin-top:0.5rem; } + .wpsg_mod_rechnungen_row .invoice_wrap > a:first-child { padding-left:0; } </style> <script> jQuery('#wpsg_mod_invoice_tabs').wpsg_tab( { - + aktTab: <?php echo $act; ?> } ); </script>
\ No newline at end of file diff --git a/views/mods/mod_rechnungen/order_view_row.phtml b/views/mods/mod_rechnungen/order_view_row.phtml index 5ab2eab..97e2667 100644 --- a/views/mods/mod_rechnungen/order_view_row.phtml +++ b/views/mods/mod_rechnungen/order_view_row.phtml @@ -12,50 +12,76 @@ $p = $this->view['wpsg_mod_rechnungen']['product'];
$product_index = $this->view['wpsg_mod_rechnungen']['product']['product_index'];
-
+
+ /** @var \wpsg\wpsg_invoice[] $arInvoice */
+ $arInvoice = $this->callMod('wpsg_mod_rechnungen', 'getInvoiceToOrderProduct', [$oOrderProduct]);
+ $arInvoiceInvoice = [];
+ $arInvoiceStorno = [];
+
+ foreach ($arInvoice as $oInvoice) {
+
+ if ($oInvoice->isStorno()) $arInvoiceStorno[] = $oInvoice;
+ else if ($oInvoice->isInvoice()) $arInvoiceInvoice[] = $oInvoice;
+
+ }
+
?>
<tr class="wpsg_<?php echo (($this->view['wpsg_mod_rechnungen']['i'] == 0)?'odd':'even'); ?>">
<td colspan="<?php echo ((sizeof($this->view['arCalculation']['tax']) > 1 || $this->get_option('wpsg_showMwstAlways') == '1')?'5':'4'); ?>">
- <div style="display:flex; flex-direction:row; margin-bottom:0px; gap:2rem;">
-
+
+ <!-- Rechnungen -->
+ <label class="bg_invoice wpsg_mod_rechnungen_row" style="font-weight:normal;">
+
<?php if ($invoice_amount > 0) { ?>
-
- <label style="display:flex; flex-direction:row; padding:5px; margin-left:-5px; gap:0.5rem; font-weight:normal; align-items:center;" class="bg_invoice">
+ <div style="display:flex; flex-direction:row; gap:0.5rem; font-weight:normal; align-items:center;">
+ <span><?php echo __('Menge'); ?></span>
<input form="invoice_form" type="hidden" name="invoice_products[<?php echo $p['order_product_id']; ?>][set]" value="0" />
<input checked="checked" form="invoice_form" type="checkbox" class="wpsg_mod_deliverynote_product" name="invoice_products[<?php echo $p['order_product_id']; ?>][set]" value="1" style="margin:0;" />
<input form="invoice_form" name="invoice_products[<?php echo $p['order_product_id']; ?>][amount]" type="number" max="<?php echo $invoice_amount; ?>" min="1" value="<?php echo min($invoice_amount, $p['amount']); ?>" style="padding:0; font-size:14px; line-height:22px; min-height:initial; height:22px; width:50px; text-indent:5px; border:1px solid black; margin:0;" />
- <span> <?php echo __('Stück auf Rechnung', 'wpsg'); ?></span>
-
- </label>
-
+ <span> <?php echo __('auf Rechnung', 'wpsg'); ?></span>
+ </div>
+ <?php } ?>
+
+ <?php if (sizeof($arInvoiceInvoice) > 0) { ?>
+ <div class="invoice_wrap">
+ <span><?php echo __('Rechnungen', 'wpsg'); ?>:</span>
+ <?php foreach ($arInvoiceInvoice as $oInvoice) { ?>
+ <?php echo $oInvoice->getNr(true, $oOrderProduct); ?>
+ <?php } ?>
+ </div>
<?php } ?>
- <?php if ($storno_amount > 0) { ?>
+ </label>
+
+ <!-- Gutschriften -->
+ <label class="bg_storno wpsg_mod_rechnungen_row" style="font-weight:normal;">
- <label style="display:flex; flex-direction:row; padding:5px; margin-left:-5px; gap:0.5rem; font-weight:normal; align-items:center;" class="bg_storno">
+ <?php if ($storno_amount > 0) { ?>
+ <div style="display:flex; flex-direction:row; gap:0.5rem; font-weight:normal; align-items:center;">
+ <span><?php echo __('Menge'); ?></span>
<input form="storno_form" type="hidden" name="storno_products[<?php echo $p['order_product_id']; ?>][set]" value="0" />
- <input form="storno_form" checked="checked" type="checkbox" class="wpsg_mod_deliverynote_product" name="storno_products[<?php echo $p['order_product_id']; ?>][set]" value="1" style="margin:0;" />
+ <input form="storno_form" type="checkbox" class="wpsg_mod_deliverynote_product" name="storno_products[<?php echo $p['order_product_id']; ?>][set]" value="1" style="margin:0;" />
- <input form="storno_form" name="storno_products[<?php echo $p['order_product_id']; ?>][amount]" type="number" max="<?php echo $storno_amount; ?>" min="1" value="<?php echo min($storno_amount, $p['amount']); ?>" style="padding:0; font-size:14px; line-height:22px; min-height:initial; height:22px; width:50px; text-indent:5px; border:1px solid black; margin:0;" />
+ <input form="storno_form" oninput="event.target.previousElementSibling.checked = true;" onchange="event.target.previousElementSibling.checked = true;" name="storno_products[<?php echo $p['order_product_id']; ?>][amount]" type="number" max="<?php echo $storno_amount; ?>" min="1" value="<?php echo min($storno_amount, $p['amount']); ?>" style="padding:0; font-size:14px; line-height:22px; min-height:initial; height:22px; width:50px; text-indent:5px; border:1px solid black; margin:0;" />
<span> <?php echo __('Stück auf Gutschrift', 'wpsg'); ?></span>
-
- </label>
-
+ </div>
<?php } ?>
- </div>
- <?php /** @var \wpsg\wpsg_invoice[] $arInvoice */ $arInvoice = $this->callMod('wpsg_mod_rechnungen', 'getInvoiceToOrderProduct', [$oOrderProduct]); ?>
- <?php if (sizeof($arInvoice) > 0) { ?>
- <div style="display:flex; gap:0.5rem; justify-content:flex-start; flex-wrap:wrap;">
- <?php foreach ($arInvoice as $oInvoice) { ?>
- <?php echo $oInvoice->getNr(true); ?>
+ <?php if (sizeof($arInvoiceStorno) > 0) { ?>
+ <div class="invoice_wrap">
+ <span><?php echo __('Rechnungskorrekturen', 'wpsg'); ?>:</span>
+ <?php foreach ($arInvoiceStorno as $oInvoice) { ?>
+ <?php echo $oInvoice->getNr(true, $oOrderProduct); ?>
+ <?php } ?>
+ </div>
<?php } ?>
- </div>
- <?php } ?>
+
+ </label>
+
</td>
</tr>
\ No newline at end of file |
