<?
global $db;
ob_start();
?>
<div class="details order-details">
  <div class="row">
  <div class="col-lg-8">
    <div class="row">
      <div class="col-sm-6 col-xl-5">
        <div class="text-big">Numer zamówienia: <b id="order-number"><?= $this -> order[ 'number' ];?></b> <i class="fa fa-copy" onclick="copyToClipboard( 'order-number' ); return false;"></i></div>
        <div>Data zamówienia <b><?= $this -> order[ 'date_order' ];?></b></div>
        <br>
        <div class="text-big">Dane do dostawy:</div>
        <div><b id="order-user-name"><?= $this -> order[ 'client_name' ];?> <?= $this -> order[ 'client_surname' ];?></b> <i class="fa fa-copy" onclick="copyToClipboard( 'order-user-name' ); return false;"></i></div>
        <? if ( $this -> order[ 'client_street' ] ):?>
          <div><b id="order-street"><?= $this -> order[ 'client_street' ];?></b> <i class="fa fa-copy" onclick="copyToClipboard( 'order-street' ); return false;"></i></div>
        <? endif;?>
        <div>
          <? if ( $this -> order[ 'client_postal_code' ] ):?>
            <b id="order-postal-code"><?= $this -> order[ 'client_postal_code' ];?></b> <i class="fa fa-copy" onclick="copyToClipboard( 'order-postal-code' ); return false;"></i>
          <? endif;?>
          <? if ( $this -> order[ 'client_city' ] ):?>
            <b id="order-city"><?= $this -> order[ 'client_city' ];?></b> <i class="fa fa-copy" onclick="copyToClipboard( 'order-city' ); return false;"></i>
          <? endif;?>
        </div>
        <div><b><a href="mailto:<?= $this -> order[ 'client_email' ];?>" id="order-user-email"><?= $this -> order[ 'client_email' ];?></a></b> <i class="fa fa-copy" onclick="copyToClipboard( 'order-user-email' ); return false;"></i></div>
        <div><b><a href="tel:<?= $this -> order[ 'client_phone' ];?>" id="order-user-phone"><?= preg_replace( "/(\d{3})(\d{3})(\d{3})/", "$1 $2 $3", $this -> order[ 'client_phone' ] );?></a></b> <i class="fa fa-copy" onclick="copyToClipboard( 'order-user-phone' ); return false;"></i></div>
        <? if ( $this -> order[ 'firm_name' ] ):?>
          <br>
          <div class="text-big">Dane do faktury:</div>
          <div><b id="order-firm-name"><?= $this -> order[ 'firm_name' ];?></b> <i class="fa fa-copy" onclick="copyToClipboard( 'order-firm-name' ); return false;"></i></div>
          <div><b id="order-firm-street"><?= $this -> order[ 'firm_street' ];?></b> <i class="fa fa-copy" onclick="copyToClipboard( 'order-firm-street' ); return false;"></i></div>
          <div>
            <b id="order-firm-postal-code"><?= $this -> order[ 'firm_postal_code' ];?></b> <i class="fa fa-copy" onclick="copyToClipboard( 'order-firm-postal-code' ); return false;"></i>
            <b id="order-firm-city"><?= $this -> order[ 'firm_city' ];?></b> <i class="fa fa-copy" onclick="copyToClipboard( 'order-firm-city' ); return false;"></i>
          </div>
          <div>NIP: <b id="order-firm-nip"><?= $this -> order[ 'firm_nip' ];?></b> <i class="fa fa-copy" onclick="copyToClipboard( 'order-firm-nip' ); return false;"></i></div>
        <? endif;?>
        <div class="resend_order_confirmation_email">
          <button class="btn btn-primary">wyślij ponownie mail z potwierdzeniem zamówienia</button>
        </div>
      </div>
      <div class="col-sm-6 col-xl-7">
        <div class="panel">
          <div class="panel-body">
            <div>Kwota zamówienia <b><?= $this -> order[ 'summary' ];?> zł</b></div>
            <? if ( $this -> coupon ):?>
              <div>Kod rabatowy: <span style="color: #cc0000;"><?= $this -> coupon -> name;?> - <?= $this -> coupon -> amount;?> <?= $this -> coupon -> type == 1 ? '%' : 'zł';?></span></div>
            <? endif;?>
            <br>
            <div><?= strip_tags( $this -> order[ 'transport' ] );?>: <b><?= $this -> order[ 'transport_cost' ];?> zł</b></div>
            <? if ( $this -> order['transport_id'] == 2 and $this -> order[ 'inpost_paczkomat' ] ):?>
              <? $paczkomat = explode( '|', $this -> order[ 'inpost_paczkomat' ] );?>
              <div>Paczkomat: <b id="order-paczkomat"><?= $paczkomat[0];?></b> | <?= $paczkomat[1];?> <i class="fa fa-copy" onclick="copyToClipboard( 'order-paczkomat' ); return false;"></i></div>
            <? endif;?>
            <? if ( $this -> order['transport_id'] == 9 and $this -> order[ 'orlen_point' ] ):?>
              <? $orlen = explode( '|', $this -> order[ 'orlen_point' ] );?>
              <div>Punkt Orlen: <b id="order-orlen"><?= $orlen[0];?></b> | <?= $orlen[1];?> <i class="fa fa-copy" onclick="copyToClipboard( 'order-orlen' ); return false;"></i></div>
            <? endif;?>
            <br/>
            <div>
              <b><?= $this -> order[ 'payment_method' ];?> </b>
            </div>
          </div>
        </div>
        <div class="paid-status panel">
          <div class="panel-body">
            <? if ( $this -> order['paid'] ):?>
              <a href="/admin/shop_order/set_order_as_unpaid/order_id=<?= $this -> order['id'];?>" class="set_order_as_unpaid">
                <span><i class="fa fa-dollar"></i></span>
                <b>Oznacz zamówienie jako nieopłacone</b>
              </a>
            <? else:?>
              <a href="/admin/shop_order/set_order_as_paid/order_id=<?= $this -> order['id'];?>" class="set_order_as_paid">
              <span class="danger"><i class="fa fa-dollar"></i></span>
                <b>Oznacz zamówienie jako opłacone</b>
              </a>
            <? endif;?>
          </div>
        </div>
      </div>
    </div>
  </div>
  <div class="col-sm-6 col-lg-4">
    <div class="order-status text-big">
      <?= $this -> order_statuses[ $this -> order[ 'status' ] ];?>
    </div>
    <div class="form-group status_select">
      <select class="form-control" id="order-status">
        <? foreach ( $this -> order_statuses as $key => $val ):?>
        <option value="<?= $key;?>" <? if ( $key == $this -> order[ 'status' ] ):?>selected="selected"<? endif;?>>
          <?= $val;?>
        </option>
        <? endforeach;?>
      </select>
    </div>
    <div class="row">
      <div class="col-12 buttons">
        <button class="btn btn-primary order_status_change_email">zmień status i wyślij email</button>
        <button class="btn btn-success order_status_change">zmień status</button>
      </div>
      <div class="col-12 order-history">
        <? if ( \S::is_array_fix( $this -> order['statuses'] ) ): foreach ( $this -> order['statuses'] as $status ):?>
          <div><b><?= date( 'Y-m-d H:i', strtotime( $status['date'] ) );?></b>: <?= $this -> order_statuses[$status['status_id']];?> <? if ( $status['mail'] ):?><i class="fa fa-envelope-o"></i><? endif;?></div>
        <? endforeach; endif;?>
      </div>
    </div>
  </div>
    <div class="d-none d-lg-block col-lg-4">
    </div>
    <div class="d-none d-lg-block col-lg-4">
    </div>
    <div class="col-sm-6 col-lg-4">
      <div class="text-big">Wiadomość do zamówienia:</div>
      <div> <b> <?= $this -> order[ 'message' ];?> </b></div>
    </div>
  </div>
  <div class="row">
    <div class="col-12">
      <div class="table-responsive">
      <table class="table">
        <thead>
          <tr>
            <th>Zdjęcie</th>
            <th scope="col">Nazwa</th>
            <th scope="col" class="tab-center">Ilość</th>
            <th scope="col" class="tab-right">Cena / szt:</th>
            <th scope="col" class="tab-right">Cena / szt (po rabacie):</th>
            <th scope="col" class="tab-right">Suma (po rabacie):</th>
          </tr>
        </thead>
        <tbody>
          <? if ( is_array( $this -> order[ 'products' ] ) ): foreach ( $this -> order[ 'products' ] as $product ):?>
          <?
              if ( $id = \admin\factory\ShopProduct::get_product_parent_id( $product['product_id'] ) )
                $product_id = $id;
              else
                $product_id = $product['product_id'];
          ?>
          <tr class="order-product-details">
            <td class="product-image">
              <? if ( $product['product_id'] ):?>
                <img src="<?= \shop\Product::getProductImg( (int)$product_id );?>">
              <? endif;?>
            </td>
            <td>
              <a href="<?= \shop\Product::getProductUrl( (int)$product_id );?>" target="_blank"><?= $product[ 'name' ];?></a>
              <br />
              <div class="atributes">
                <?= $product[ 'attributes' ];?>
              </div>
              <div class="custom-fields">
                <?= $product[ 'custom_fields' ];?>
              </div>
              <div class="product-message">
                <?= $product[ 'message' ] != '' ? '<strong>Wiadomość:</strong> ' . $product['message'] : '';?>
              </div>
            </td>
            <td class="tab-center"><?= $product[ 'quantity' ];?></td>
            <td class="tab-right"><?= \S::decimal( $product[ 'price_brutto' ] );?> zł</td>
            <td class="tab-right"><?= \S::decimal( $product[ 'price_brutto_promo' ] );?> zł</td>
            <td class="tab-right"><?= \S::decimal( $product[ 'price_brutto_promo' ] * $product[ 'quantity' ] );?> zł</td>
          </tr>
          <? endforeach; endif;?>
        </tbody>
      </table>
    </div>
    </div>
  </div>
  <div class="row">
    <div class="col-12">
      <form>
        <div class="form-group">
          <label for="notes">Notatki</label>
          <textarea class="form-control" id="notes" rows="10"><?= $this -> order['notes'];?></textarea>
        </div>
      </form>
    </div>
  </div>
</div>
<?
$out = ob_get_clean();

$grid = new \gridEdit;
$grid -> id = 'order-details';
$grid -> gdb_opt = $gdb;
$grid -> include_plugins = true;
$grid -> title = 'Szczegóły zamówienia: ' . $this -> order[ 'number' ];
$grid -> buttons = [
    [
        'label' => 'Wstecz',
        'url'   => '/admin/shop_order/view_list/',
        'icon'  => 'fa-reply',
        'class' => 'btn btn-dark btn-sm mr5'
    ], [
      'label' => 'Edytuj zamówienie',
      'url'   => '/admin/shop_order/order_edit/order_id=' . $this -> order['id'],
      'icon'  => 'fa-pencil',
      'class' => 'btn btn-danger btn-sm mr5 ml5'
    ]
];
if ( $this -> prev_order_id )
{
  $grid -> buttons[] = [
    'label' => 'Poprzednie zamówienie',
    'url'   => '/admin/shop_order/order_details/order_id=' . $this -> prev_order_id,
    'icon'  => 'fa-arrow-left',
    'class' => 'btn btn-success btn-sm mr5 ml5'
  ];
}
if ( $this -> next_order_id )
{
  $grid -> buttons[] = [
    'label' => 'Następne zamówienie',
    'url'   => '/admin/shop_order/order_details/order_id=' . $this -> next_order_id,
    'icon'  => 'fa-arrow-right',
    'class' => 'btn btn-success btn-sm mr5 ml5'
  ];
}
$grid -> buttons[] = [
  'label' => '',
  'url'   => '#',
  'icon'  => 'fa-ellipsis-v',
  'class' => 'btn btn-primary',
  'id'    => 'integrationsDropdownBtn'
];
$grid -> default_buttons = false;
$grid -> external_code = $out;
echo $grid -> draw();
?>
<div class="dropdown-menu dropdown-menu-right" id="integrationsDropdownMenu">
  <a class="dropdown-item btn-send-order-to-apilo" href="/admin/shop_order/send_order_to_apilo/order_id=<?= $this -> order['id'];?>">
    <i class="fa fa-refresh"></i> Wyślij ponownie zamówienie do apilo.com
  </a>
  <a class="dropdown-item btn-toggle-trustmate" href="#">
    <i class="fa fa-<?= $this -> order['trustmate_send'] ? 'times' : 'check';?>"></i>
    <?= $this -> order['trustmate_send'] ? 'Odznacz zamówienie jako wysłane do trustmate.io' : 'Zaznacz zamówienie jako wysłane do trustmate.io';?>
  </a>
</div>
<script type="text/javascript">
$( function() {
  var btn = $( '#integrationsDropdownBtn' );
  var menu = $( '#integrationsDropdownMenu' );

  // Opakuj przycisk w dropdown wrapper
  btn.wrap( '<div class="dropdown d-inline-block pull-right"></div>' );
  menu.appendTo( btn.parent() );

  // Ręczna obsługa toggle dropdown
  btn.on( 'click', function(e) {
    e.preventDefault();
    e.stopPropagation();
    menu.toggleClass( 'show' );
  });

  // Zamknij dropdown po kliknięciu poza nim
  $( document ).on( 'click', function(e) {
    if ( !btn.is( e.target ) && !menu.is( e.target ) && menu.has( e.target ).length === 0 ) {
      menu.removeClass( 'show' );
    }
  });
});
  $( function()
  {
    var timer = '';
    $( '#notes' ).keyup( function()
    {
      var _this = $( this);
      clearTimeout( timer );
      timer = setTimeout( function()
      {
        $.ajax(
        {
          type: 'POST',
          cache: false,
          url: '/admin/shop_order/notes_save/',
          data:
          {
            order_id: <?= $this -> order['id'];?>,
            notes: _this.val()
          },
          beforeSend: function()
          {

          },
          success: function( response )
          {
            var time = 0;
          }
        });
      }, 500 );
    });

    $( 'body' ).on( 'click', '.btn-send-order-to-apilo', function(e) {
      e.preventDefault();
      var href = $( this ).attr( 'href' );
      $.alert({
        title: 'Potwierdź',
        content: 'Czy na pewno chcesz wysłać zamówienie do apilo.com?',
        type: 'orange',
        closeIcon: true,
        closeIconClass: 'fa fa-times',
        typeAnimated: true,
        animation: 'opacity',
        columnClass: 'col-12 col-lg-10',
        theme: 'modern',
        icon: 'fa fa-question',
        buttons: {
          confirm: {
            text: 'Tak',
            btnClass: 'btn-success',
            keys: ['enter'],
            action: function() {
              document.location.href = href;
            }
          },
          cancel: {
            text: 'Nie',
            btnClass: 'btn-dark',
            action: function() {}
          }
        }
      });
    });
  });

  // set_order_as_unpaid
  $( 'body' ).on( 'click', '.set_order_as_unpaid', function(e) {
    var href = $( this ).attr( 'href' );
    $.alert({
      title: 'Pytanie',
      content: 'Zmienić zamówienie na nieopłacone?',
      type: 'orange',
      closeIcon: true,
      closeIconClass: 'fa fa-times',
      typeAnimated: true,
      animation: 'opacity',
      columnClass: 'col-12 col-lg-10',
      theme: 'modern',
      icon: 'fa fa-question',
      buttons: {
        confirm: {
          text: 'Tak',
          btnClass: 'btn-success',
          keys: ['enter'],
          action: function() {
            document.location.href = href;
          }
        },
        cancel: {
          text: 'Nie',
          btnClass: 'btn-dark',
          action: function() {}
        }
      }
    });
    return false;
  });

  // set_order_as_paid
  $( 'body' ).on( 'click', '.set_order_as_paid', function(e) {
    var href = $( this ).attr( 'href' );
    $.alert({
      title: 'Pytanie',
      content: 'Zmienić zamówienie na opłacone?',
      type: 'orange',
      closeIcon: true,
      closeIconClass: 'fa fa-times',
      typeAnimated: true,
      animation: 'opacity',
      columnClass: 'col-12 col-lg-10',
      theme: 'modern',
      icon: 'fa fa-question',
      buttons: {
        confirm: {
          text: 'Tak',
          btnClass: 'btn-success',
          keys: ['enter'],
          action: function() {
            document.location.href = href;
          }
        },
        confirm2: {
          text: 'Tak (wyślij mail)',
          btnClass: 'btn-primary',
          keys: ['enter'],
          action: function() {
            document.location.href = href + '&send_mail=1';
          }
        },
        cancel: {
          text: 'Nie',
          btnClass: 'btn-dark',
          action: function() {}
        }
      }
    });
    return false;
  });

$('body').on('click', '.order_status_change_email', function() {
  $.alert({
    title: 'Pytanie',
    content: 'Na pewno chcesz wysłać mail o zmianie statusu?',
    type: 'orange',
    closeIcon: true,
    closeIconClass: 'fa fa-times',
    typeAnimated: true,
    animation: 'opacity',
    columnClass: 'col-12 col-lg-10',
    theme: 'modern',
    icon: 'fa fa-question',
    buttons: {
      confirm: {
        text: 'Tak',
        btnClass: 'btn-success',
        keys: ['enter'],
        action: function() {
          order_status_change(<?= $this -> order[ 'id' ];?>, $('#order-status').val(), true);
        }
      },
      cancel: {
        text: 'Nie',
        btnClass: 'btn-dark',
        action: function() {}
      }
    }
  });

  return false;
});

$( 'body' ).on( 'click', '.resend_order_confirmation_email button', function() {
  $.alert({
    title: 'Pytanie',
    content: 'Na pewno chcesz wysłać mail o złożonym zamówieniu?',
    type: 'orange',
    closeIcon: true,
    closeIconClass: 'fa fa-times',
    typeAnimated: true,
    animation: 'opacity',
    columnClass: 'col-12 col-lg-10',
    theme: 'modern',
    icon: 'fa fa-question',
    buttons: {
      confirm: {
        text: 'Tak',
        btnClass: 'btn-success',
        keys: ['enter'],
        action: function()
        {
          $.ajax({
            type: 'POST',
            cache: false,
            url: '/admin/shop_order/order_resend_confirmation_email/',
            data: {
              order_id: <?= $this -> order['id'];?>
            },
            beforeSend: function()
            {
              $( '#overlay' ).show();
            },
            success: function(response)
            {
              $( '#overlay' ).hide();

              data = jQuery.parseJSON(response);

              if ( data.result === true )
              {
                return $.alert({
                  title: 'Informacja',
                  content: 'Wiadomość została wysłana',
                  type: 'orange',
                  closeIcon: true,
                  closeIconClass: 'fa fa-close',
                  typeAnimated: true,
                  animation: 'opacity',
                  autoClose: 'confirm|10000',
                  columnClass: 'col-12 col-lg-10',
                  theme: 'modern',
                  icon: 'fa fa-info',
                  buttons: {
                    confirm: {
                      text: 'Zamknij',
                      btnClass: 'btn-success',
                      keys: ['enter'],
                      action: function() {
                        location.reload();
                      }
                    }
                  }
                });
              }

              if ( data.result === false)
              {
                return $.alert({
                  title: 'Błąd',
                  content: 'Podczas wysyłania wiadomości wystąpił błąd',
                  type: 'orange',
                  closeIcon: true,
                  closeIconClass: 'fa fa-close',
                  typeAnimated: true,
                  animation: 'opacity',
                  columnClass: 'col-12 col-lg-10',
                  theme: 'modern',
                  icon: 'fa fa-exclamation',
                  buttons: {
                    confirm: {
                      text: 'Zamknij',
                      btnClass: 'btn-danger',
                      keys: ['enter'],
                      action: function() {
                        location.reload();
                      }
                    }
                  }
                });
              }
            }
          });
        }
      },
      cancel: {
        text: 'Nie',
        btnClass: 'btn-dark',
        action: function() {}
      }
    }
  });

  return false;
});

$('body').on('click', '.order_status_change', function() {
  order_status_change(<?= $this -> order[ 'id' ];?>, $('#order-status').val(), false);
  return false;
});

function order_status_change($order_id, $status, $email) {
  $.ajax({
    type: 'POST',
    cache: false,
    url: '/admin/shop_order/order_status_change/',
    data: {
      order_id: $order_id,
      status: $status,
      email: $email
    },
    beforeSend: function() {
      $('#overlay').show();
    },
    success: function(response) {
      $('#overlay').hide();

      data = jQuery.parseJSON(response);

      if (data.email === true) {
        return $.alert({
          title: 'Informacja',
          content: 'Wiadomość o zmiane statusu została wysłana',
          type: 'orange',
          closeIcon: true,
          closeIconClass: 'fa fa-close',
          typeAnimated: true,
          animation: 'opacity',
          autoClose: 'confirm|10000',
          columnClass: 'col-12 col-lg-10',
          theme: 'modern',
          icon: 'fa fa-info',
          buttons: {
            confirm: {
              text: 'Zamknij',
              btnClass: 'btn-success',
              keys: ['enter'],
              action: function() {
                location.reload();
              }
            }
          }
        });
      }

      if (data.email === false) {
        return $.alert({
          title: 'Błąd',
          content: 'Podczas wysyłania wiadomości wystąpił błąd',
          type: 'orange',
          closeIcon: true,
          closeIconClass: 'fa fa-close',
          typeAnimated: true,
          animation: 'opacity',
          columnClass: 'col-12 col-lg-10',
          theme: 'modern',
          icon: 'fa fa-exclamation',
          buttons: {
            confirm: {
              text: 'Zamknij',
              btnClass: 'btn-danger',
              keys: ['enter'],
              action: function() {
                location.reload();
              }
            }
          }
        });
      }

      if (data.result == true) {
        return $.alert({
          title: 'Informacja',
          content: 'Status zamówienia został zmieniony',
          type: 'orange',
          closeIcon: true,
          closeIconClass: 'fa fa-close',
          typeAnimated: true,
          animation: 'opacity',
          autoClose: 'confirm|10000',
          columnClass: 'col-12 col-lg-10',
          theme: 'modern',
          icon: 'fa fa-info',
          buttons: {
            confirm: {
              text: 'Zamknij',
              btnClass: 'btn-success',
              keys: ['enter'],
              action: function() {
                location.reload();
              }
            }
          }
        });
      }
    }
  });
}

$( 'body' ).on( 'click', '.btn-toggle-trustmate', function(e) {
  e.preventDefault();
  var currentState = <?= $this -> order['trustmate_send'] ? 'true' : 'false';?>;

  $.alert({
    title: 'Potwierdź',
    content: currentState ? 'Czy na pewno chcesz odznaczyć zamówienie jako wysłane do trustmate.io?' : 'Czy na pewno chcesz zaznaczyć zamówienie jako wysłane do trustmate.io?',
    type: 'orange',
    closeIcon: true,
    closeIconClass: 'fa fa-times',
    typeAnimated: true,
    animation: 'opacity',
    columnClass: 'col-12 col-lg-10',
    theme: 'modern',
    icon: 'fa fa-question',
    buttons: {
      confirm: {
        text: 'Tak',
        btnClass: 'btn-success',
        keys: ['enter'],
        action: function() {
          $.ajax({
            type: 'POST',
            cache: false,
            url: '/admin/shop_order/toggle_trustmate_send/',
            data: {
              order_id: <?= $this -> order['id'];?>
            },
            beforeSend: function() {
              $( '#overlay' ).show();
            },
            success: function( response ) {
              $( '#overlay' ).hide();
              var data = jQuery.parseJSON( response );
              if ( data.result === true ) {
                location.reload();
              }
            }
          });
        }
      },
      cancel: {
        text: 'Nie',
        btnClass: 'btn-dark',
        action: function() {}
      }
    }
  });
});
</script>