Merge branch 'fronkdev' into 'master'

Fix PreorderDiscount typo

See merge request fronk/thetool!408
This commit is contained in:
Frank Schubert
2024-06-25 11:14:57 +00:00
22 changed files with 1702 additions and 117 deletions

View File

@@ -0,0 +1,165 @@
<?php
$pagination_baseurl = $this->getUrl($Mod, "Index");
$pagination_baseurl_params = ["filter" => $filter];
$pagination_entity_name = "Billingrecords";
?>
<?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 active">Rechnungsdatensätze</li>
</ol>
</div>
<h4 class="page-title">Rechnungsdatensätze</h4>
</div>
</div>
</div>
<!-- end page title -->
<div class="row">
<div class="col-lg-12">
<div class="card">
<div class="card-body mb-3">
<h4 class="header-title mb-3">Filter</h4>
<form method="get" action="<?=self::getUrl("Billing")?>">
<div class="row">
<div class="col-1">
<label class="form-label" for="filter_owner">Kundennummer</label>
<input type="text" class="form-control" name="filter[customer_number]" id="filter_street" value="<?=(array_key_exists("customer_number", $filter)) ? $filter['customer_number'] : ""?>"/>
</div>
<div class="col-2">
<label class="form-label" for="filter_show_credit">Gutschriften</label>
<select class="form-control" name="filter[show_credit]" id="filter_show_credit">
<option value="0" <?=(array_key_exists("show_credit", $filter) && $filter['show_credit'] == 0) ? "selected='selected'" : ""?>>Ausblenden</option>
<option value="1" <?=(array_key_exists("show_credit", $filter) && $filter['show_credit'] == 1 ) ? "selected='selected'" : ""?>>Anzeigen</option>
</select>
</div>
<div class="col-2">
<label class="form-label" for="filter_show_credit">Rechnungsperiode</label>
<select class="form-control" name="filter[billing_period]" id="filter_billing_period">
<option></option>
<option value="1" <?=(array_key_exists("billing_period", $filter) && $filter['billing_period'] == 1) ? "selected='selected'" : ""?>>Monatlich</option>
<option value="12" <?=(array_key_exists("billing_period", $filter) &&$filter['billing_period'] == 12 ) ? "selected='selected'" : ""?>>Jährlich</option>
</select>
</div>
</div>
<div class="row mt-2">
<div class="col">
<button type="submit" class="btn btn-primary">Filter anwenden</button>
<a class="btn btn-secondary" href="<?=self::getUrl("Billing")?>?resetFilter=1">Filter zurücksetzen</a>
</div>
</div>
</form>
</div>
</div>
<div class="card">
<div class="card-body mb-3">
<div class="row">
<div class="col-12">
<div class="float-left">
<h4 class="header-title">Fertiggestellte Bestellungen</h4>
<!--button type="submit" class="btn btn-primary"><i class="fas fa-fw fa-check"></i> Markierte Elemente als Contract übernehmen</button-->
</div>
<div class="float-right">
<a class="btn btn-outline-primary mb-2" href="<?=self::getUrl("Billing", "importContracts")?>">
<i class="fas fa-fw fa-file-import"></i> Verrechenbare Contracts importieren
</a>
</div>
</div>
</div>
<div class="row">
<div class="col-12">
<?php include(realpath(dirname(__FILE__)."/../")."/tpl/pagination.php"); ?>
<?php include(realpath(dirname(__FILE__)."/../")."/tpl/pagination-summary.php"); ?>
<table class="table table-sm table-striped table-hover">
<tr>
<th>Contract ID</th>
<th>Periode</th>
<th>Vertragsinhaber</th>
<th>Rechnungsadresse</th>
<th>Kundennummer</th>
<th>Einzug</th>
<th>Zustellung</th>
<th>Bankdaten</th>
<th>Produkt</th>
<th>Anzahl</th>
<th>Preis</th>
<th>Preis Setup</th>
<th></th>
</tr>
<?php foreach($billings as $billing): ?>
<tr>
<td><a href="<?=self::getUrl("Contract", "view", ["contract_id" => $billing->contract_id])?>" target="_blank"><?=$billing->contract_id?></a></td>
<td><?=$billing->start_date?> - <?=$billing->end_date?></td>
<td>
<?=$billing->contract->owner->getCompanyOrName()?><br />
<?=$billing->contract->owner->street?><br />
<?=$billing->contract->owner->zip?> <?=$billing->contract->owner->city?>
<?=$billing->contract->owner->country->name?>
</td>
<td>
<?=($billing->company) ? $billing->company."<br />" : ""?>
<?=($billing->firstname || $billing->lastname) ? $billing->firstname." ".$billing->lastname."<br />" : ""?>
<?=$billing->street?><br />
<?=$billing->zip?> <?=$billing->city?><br />
<?=$billing->country?>
</td>
<td><?=$billing->customer_number?></td>
<td><?=($billing->billing_type == "sepa") ? "SEPA" : ""?></td>
<td><?=($billing->billing_delivery == "email") ? "Email" : "Papier"?></td>
<td>
<?php if($billing->billing_type == "sepa"): ?>
Kontoinhaber: <?=$billing->bank_account_owner?><br />
Bank: <?=$billing->bank_account_bank?><br />
IBAN: <?=$billing->bank_account_iban?><br />
BIC: <?=$billing->bank_account_bic?><br />
<?php endif; ?>
</td>
<td>
<?=$billing->product_name?><?=($billing->matchcode) ? " (".$billing->matchcode.")" : ""?>
<?php if($billing->product_info): ?>
<div class="pl-2">
<?=$billing->product_info?>
</div>
<?php endif; ?>
</td>
<td><?=number_format($billing->amount,3,",",".")?></td>
<td>€ <?=number_format($billing->price,4,",",".")?></td>
<td>€ <?=number_format($billing->price_setup,4,",",".")?></td>
<td></td>
</tr>
<?php endforeach; ?>
</table>
<?php include(realpath(dirname(__FILE__)."/../")."/tpl/pagination-summary.php"); ?>
<?php include(realpath(dirname(__FILE__)."/../")."/tpl/pagination.php"); ?>
</div>
</div>
</div>
</div>
</div>
</div>
<?php include(realpath(dirname(__FILE__) . "/../../$mfLayoutPackage") . "/footer.php"); ?>

View File

@@ -147,6 +147,7 @@
<th>Adresse</th>
<th>Einheiten</th>
<th>Status</th>
<!--th class="text-center"><img src="<?=self::getResourcePath()?>assets/images/snopp-sm.png" style="width: 24px; height: 24px;" /> Export</th-->
<th></th>
</tr>
<?php foreach($buildings as $building): ?>
@@ -162,6 +163,7 @@
</td>
<td onclick="toggleBuilding(<?=$building->id?>)"><?=$building->units?></td>
<td onclick="toggleBuilding(<?=$building->id?>)" class="text-monospace"><?=__($building->status->name."-b")?></td>
<!--td><input type="checkbox" class="form-control" id="snopp-export-<?=$building->id?>" data-building-id="<?=$building->id?>" /></td-->
<td style="text-align: left; letter-spacing: 4px; font-size: 1.1em;">
<a href="<?=self::getUrl("Building", "edit", ["id" => $building->id])?>"><i class="far fa-edit" title="Objekt Bearbeiten"></i></a>
<a href="<?=self::getUrl("Building", "delete", ["id" => $building->id])?>" class="text-danger" onclick="if(!confirm('Objekt wirklich löschen?')) return false;" title="Objekt Löschen"><i class="fas fa-trash"></i></a>

View File

@@ -128,8 +128,8 @@
</a>
<?php endif; ?>
</td>-->
<td class="<?=($contract->isCancelled()) ? "canceled" : "" ?> <?=(!$contract->isFinished()) ? "not-finished" : "" ?> <?=($contract->price < 0) ? "text-danger" : ""?>"><?=$contract->price?></td>
<td class="<?=($contract->isCancelled()) ? "canceled" : "" ?> <?=(!$contract->isFinished()) ? "not-finished" : "" ?> <?=($contract->price_setup < 0) ? "text-danger" : ""?>"><?=$contract->price_setup?></td>
<td class="<?=($contract->isCancelled()) ? "canceled" : "" ?> <?=(!$contract->isFinished()) ? "not-finished" : "" ?> <?=($contract->price < 0) ? "text-danger" : ""?>"><?=number_format($contract->price,4,",",".")?></td>
<td class="<?=($contract->isCancelled()) ? "canceled" : "" ?> <?=(!$contract->isFinished()) ? "not-finished" : "" ?> <?=($contract->price_setup < 0) ? "text-danger" : ""?>"><?=number_format($contract->price_setup,4,",",".")?></td>
<td class="<?=($contract->isCancelled()) ? "canceled" : "" ?> <?=(!$contract->isFinished()) ? "not-finished" : "" ?>">
<?php if($contract->billing_period == 1): ?>
monatlich