WIP 2024-07-22

This commit is contained in:
Frank Schubert
2024-07-23 13:03:45 +02:00
parent 398b908729
commit d8b3002cfa
7 changed files with 107 additions and 25 deletions

View File

@@ -31,7 +31,7 @@
</div>
</div>
<div class="card">
<div class="card border-top-success">
<div class="card-body">
<h3 class="text-center mb-3"><?=$contract->product_name?> (<?=$contract->id?>)</h3>
@@ -77,7 +77,7 @@
</div>
<div class="card">
<div class="card border-top-purple">
<div class="card-body">
<h4 class="text-center mb-3">Neuer Contract</h4>
@@ -309,7 +309,7 @@
<div class="row">
<div class="col text-center">
<input type="submit" class="btn btn-primary" value="Produktwechsel speichern"/>
<input type="submit" class="btn btn-purple" value="Produktwechsel speichern"/>
</div>
</div>
</form>

View File

@@ -231,7 +231,7 @@
<button type="button" class="btn btn-sm btn-outline-secondary"><i class="far fa-people-arrows fa-fw"></i> Inhaberwechsel</button>
<a href="<?=self::getUrl("Contract", "productchange", ["contract_id" => $contract->id])?>"><button type="button" class="btn btn-sm btn-outline-purple"><i class="far fa-truck-container fa-fw"></i> Produkt-/Standortwechsel</button></a>
<a href="<?=self::getUrl("Contract", "cancel", ["contract_id" => $contract->id])?>"><button type="button" class="btn btn-sm btn-outline-danger"><i class="far fa-axe fa-fw"></i> Kündigen</button></a>
<?php else: ?>
<?php elseif(!$contract->finish_date): ?>
<a href="<?=self::getUrl("Contract", "finishContract", ['contract_id' => $contract->id])?>" onclick="if(!confirm('Jetzt fertigstellen und in Verrechnung geben?')) return false"><button type="button" class="btn btn-sm btn-success"><i class="far fa-face-confused fa-fw"></i> Jetzt fertigstellen</button></a>
<?php endif; ?>
</td>

View File

@@ -142,7 +142,8 @@
<div class="row">
<div class="col-12">
<div class="float-right">
<a class="btn btn-lg btn-primary mb-2" href="<?=self::getUrl("Order", "add")?>"><i class="fas fa-square-plus mr-1"></i> Neue Bestellung anlegen</a>
<a class="btn btn-lg btn-primary mb-2" href="<?=self::getUrl("Order", "add")?>"><i class="fas fa-fw fa-square-plus "></i> Neue Bestellung anlegen</a>
<a class="btn btn-lg btn-purple mb-2 ml-2" href="<?=self::getUrl("Order", "addUpgrade")?>"><i class="fas fa-fw fa-square-up "></i> Upgrade eingeben</a>
</div>
</div>
</div>

View File

@@ -0,0 +1,78 @@
<?php
$urlfilter = [];
if($s) {
$urlfilter['s'] = $s;
}
if($noTermProducts) {
$urlfilter['noTermProducts'] = 1;
}
if(isset($filter) && is_array($filter) && count($filter)) {
$urlfilter["filter"] = $filter;
}
$posturl = self::getUrl("Order", "save", $urlfilter);
?>
<?php include(realpath(dirname(__FILE__)."/../../$mfLayoutPackage")."/header.php"); ?>
<!-- start page title -->
<div class="row">
<div class="col-12">
<div class="page-title-box">
<div class="page-title-right">
<ol class="breadcrumb m-0">
<li class="breadcrumb-item"><a href="<?=self::getUrl("Dashboard")?>"><?=MFAPPNAME_SLUG?></a></li>
<li class="breadcrumb-item"><a href="<?=self::getUrl("Order")?>">Bestellungen</a></li>
<li class="breadcrumb-item active">Produktwechsel</li>
</ol>
</div>
<h4 class="page-title">Bestellungen</h4>
</div>
</div>
</div>
<!-- end page title -->
<div class="row">
<div class="col-lg-12">
<div class="card no-shadow">
<div class="card-body bg-light">
<h4 class="mb-2">Produktwechsel</h4>
<form class="form-horizontal" method="post" action="<?=$posturl?>" name="orderForm" id="orderForm" enctype="multipart/form-data">
<div class="card">
<div class="card-body">
<div class="row">
<div class="col-lg-6" id="owner-block">
<div class="form-group row">
<div class="col-lg-12 mb-2">
<h4>Vertragsinhaber auswählen</h4>
<select class="form-control basicAutoComplete" autocomplete="off" name="owner_id" id="owner_id" data-url="<?=self::getUrl('Address','api')?>?do=findAddress&autocomplete=1" placeholder="Tippen zum Suchen... (Bestandskunden)" data-noresults-text="Keine Suchergebnisse">
<option></option>
</select>
</div>
</div>
</div>
</div>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
<script type="text/javascript">
$('#owner_id').autoComplete();
</script>
<?php include(realpath(dirname(__FILE__)."/../../$mfLayoutPackage")."/footer.php"); ?>

View File

@@ -48,6 +48,7 @@ class ContractTrigger_Finished {
$now->setTime(2,0,0);
$cancel_date = clone($now);
$cancel_date->modify("-1 day");
$cancel_date->setTime(23,59,59);
$origin = $link->origin;
@@ -74,7 +75,7 @@ class ContractTrigger_Finished {
// verlinkten Contract kündigen (wenn nicht schon gekündigt)
if ($old_link->change_action == "cancel" && !$old_link->origin->cancel_date) {
$old_link->origin->update([
'cancel_date' => $now->getTimestamp(),
'cancel_date' => $cancel_date->getTimestamp(),
'cancel_date_by' => $this->me->id,
'edit_by' => $this->me->id
]);
@@ -100,7 +101,7 @@ class ContractTrigger_Finished {
// verlinkten Contract kündigen (wenn nicht schon gekündigt)
if ($old_link->change_action == "cancel" && !$old_link->contract->cancel_date) {
$old_link->contract->update([
'cancel_date' => $now->getTimestamp(),
'cancel_date' => $cancel_date->getTimestamp(),
'cancel_date_by' => $this->me->id,
'edit_by' => $this->me->id
]);
@@ -126,7 +127,7 @@ class ContractTrigger_Finished {
// Alte Gutschrift kündigen und neue anlegen
//var_dump($old_credit->contract);
$old_credit->contract->update([
'cancel_date' => $now->getTimestamp(),
'cancel_date' => $cancel_date->getTimestamp(),
'cancel_date_by' => $this->me->id,
'edit_by' => $this->me->id
]);

View File

@@ -150,18 +150,11 @@ class OrderController extends mfBaseController {
}
}
//if(!$showLonelies) {
//var_dump($order_search);exit;
$pagination['maxItems'] = OrderModel::count($order_search);
foreach(OrderModel::search($order_search, $pagination) as $order) {
if(!array_key_exists($order->id, $orders)) {
$orders[$order->id] = $order;
}
}
//}
$pagination['maxItems'] = OrderModel::count($order_search);
$orders = OrderModel::search($order_search, $pagination, true);
$showLoneliesCount = false;
foreach(["owner", "owner_address", "partner_number"] as $key) {
foreach(["owner", "owner_address", "partner_number"] as $key) {
if(array_key_exists($key, $filter) && $filter[$key]) {
$showLoneliesCount = true;
break;
@@ -192,7 +185,6 @@ class OrderController extends mfBaseController {
if($this->me->isAdmin()) {
if(!$this->request->filter['network_id']) {
$lonelies = OrderModel::search($order_search);
}
} else {
$order_search['create_by'] = $userIds;
@@ -225,7 +217,7 @@ class OrderController extends mfBaseController {
foreach($lonelies as $order) {
// check for voice or special products only
$this->log->debug("Order id ".$order->id);
//$this->log->debug("Order id ".$order->id);
/*if($order->id == 38) {
var_dump($order);
exit;
@@ -476,7 +468,13 @@ class OrderController extends mfBaseController {
$this->layout()->setFlash("Wartestatus erfolgreich gespeichert", "success");
$this->redirect("Order","Index", $qs);
}
protected function addUpgrade() {
$this->layout()->setTemplate("Order/Productchange");
}
protected function saveAction() {
$r = $this->request;
//var_dump($r->products);

View File

@@ -180,7 +180,7 @@ class OrderModel {
return 0;
}
public static function search($filter, $limit=false) {
public static function search($filter, $limit=false, $withId = false) {
$items = [];
$db = FronkDB::singleton();
@@ -210,7 +210,7 @@ class OrderModel {
if(is_array($limit) && count($limit)) {
if(is_numeric($limit['start']) && is_numeric($limit['count'])) {
$sql .= " LIMIT ".$limit['start'].", ".$limit['count'];
} elseif(is_numeric($count)) {
} elseif(is_numeric($limit['count'])) {
$sql .= " LIMIT ".$limit['count'];
}
}
@@ -218,7 +218,11 @@ class OrderModel {
$res = $db->query($sql);
if($db->num_rows($res)) {
while($data = $db->fetch_object($res)) {
$items[] = new Order($data);
if($withId) {
$items[$data->id] = new Order($data);
} else {
$items[] = new Order($data);
}
}
}