275 lines
12 KiB
HTML
275 lines
12 KiB
HTML
title = "Production"
|
|
url = "/production"
|
|
layout = "platform_main"
|
|
is_hidden = 0
|
|
|
|
[builderList]
|
|
modelClass = "Romanah\Gokbakja\Models\Product"
|
|
scope = "scopeGetReport"
|
|
scopeValue = "{{ :scope }}"
|
|
displayColumn = "id"
|
|
noRecordsMessage = "No records found"
|
|
detailsPage = "-"
|
|
detailsUrlParameter = "id"
|
|
pageNumber = "{{ :page }}"
|
|
|
|
[production]
|
|
==
|
|
<?php
|
|
function onStart(){
|
|
|
|
$currentDate = Carbon\Carbon::now()->timezone('UTC +05:00');
|
|
|
|
$currentDateFormat = Carbon\Carbon::now()->format('Y-m-d');
|
|
|
|
$this["currentDate"] = $currentDate;
|
|
$this["currentMonth"] = $currentDate->format('m');
|
|
$this["currentYear"] = $currentDate->format('Y');
|
|
|
|
$this["productions"] = Romanah\Gokbakja\Models\Production::whereDate('created_at', date($currentDateFormat))->with(['pivot_production'])->orderBy('id', 'DESC')->get();
|
|
|
|
$this["productCounts"] = Romanah\Gokbakja\Models\Product::where('report', 'simple')->count();
|
|
|
|
}
|
|
?>
|
|
==
|
|
{% set records = builderList.records %}
|
|
{% set displayColumn = builderList.displayColumn %}
|
|
{% set noRecordsMessage = builderList.noRecordsMessage %}
|
|
{% set detailsPage = builderList.detailsPage %}
|
|
{% set detailsKeyColumn = builderList.detailsKeyColumn %}
|
|
{% set detailsUrlParameter = builderList.detailsUrlParameter %}
|
|
|
|
|
|
|
|
|
|
{% put styles %}
|
|
<link href="{{'assets/libs/datatables.net-bs4/css/dataTables.bootstrap4.min.css'|theme}}" rel="stylesheet"
|
|
type="text/css" />
|
|
<link href="{{'assets/libs/datatables.net-buttons-bs4/css/buttons.bootstrap4.min.css'|theme}}" rel="stylesheet"
|
|
type="text/css" />
|
|
<link href="{{'assets/libs/datatables.net-select-bs4/css/select.bootstrap4.min.css'|theme}}" rel="stylesheet"
|
|
type="text/css" />
|
|
{% endput %}
|
|
|
|
<div class="container-fluid">
|
|
<div class="row">
|
|
<!-- <div class="col-lg-4">
|
|
<a href="/all-productions/{{currentMonth}}" class="card bg-primary text-white-50">
|
|
<div class="card-body">
|
|
<h5 class="mb-4 text-white"><i class="mdi mdi-bullseye-arrow me-3"></i> HEMMESI</h5>
|
|
<p class="card-text">Bu bölümde hasabatyň aýlar boýunça ählisini görüp bilersiňiz.</p>
|
|
</div>
|
|
</a>
|
|
</div>
|
|
<div class="col-lg-4">
|
|
<a href="/report-production/{{currentYear}}" class="card bg-primary text-white-50">
|
|
<div class="card-body">
|
|
<h5 class="mb-4 text-white"><i class="mdi mdi-bullseye-arrow me-3"></i> ORTAÇA ÖNÜMÇILIK</h5>
|
|
<p class="card-text">Bu bölümde ortaça önümçilik boýunça hasabat.</p>
|
|
</div>
|
|
</a>
|
|
</div> -->
|
|
|
|
|
|
<!-- <div class="col-lg-4">
|
|
<div class="card bg-primary text-white-50">
|
|
<div class="card-body">
|
|
<h5 class="mb-4 text-white"><i class="mdi mdi-bullseye-arrow me-3"></i> Primary Card</h5>
|
|
<p class="card-text">Some quick example text to build on the card title and make up the bulk of the
|
|
card's content.</p>
|
|
</div>
|
|
</div>
|
|
</div> -->
|
|
|
|
</div>
|
|
<div class="row">
|
|
<div class="col-lg">
|
|
<a class="card bg-success text-white-50">
|
|
<div class="card-body">
|
|
<h5 class="mb-4 text-white" id="percentage"><i class="mdi mdi-bullseye-arrow me-3"></i> 0 %</h5>
|
|
<p class="card-text" id="all_amount">JEMI: 0 kg</p>
|
|
</div>
|
|
</a>
|
|
</div>
|
|
{% for key, record in records %}
|
|
<div class="col-lg col-sm">
|
|
<a class="card bg-info text-white-50">
|
|
<div class="card-body">
|
|
<h5 class="mb-4 text-white" id="avg_percentage_{{record.id}}"><i class="mdi mdi-bullseye-arrow me-3"></i> 0 %</h5>
|
|
<p class="card-text" id="avg_amount_{{record.id}}">ORTAÇA: 0 kg</p>
|
|
</div>
|
|
</a>
|
|
</div>
|
|
{% endfor %}
|
|
</div>
|
|
<!-- end row -->
|
|
<div class="row">
|
|
<div class="col-md-12">
|
|
<div class="card">
|
|
<div class="card-body">
|
|
<div class="row">
|
|
<div class="col-md-6">
|
|
<h3 class="card-title" style="font-size: 22px;color: #1e2038;">Çig Mallar Boýunça
|
|
({{currentDate|date('d.m.Y | H:i')}})</h3>
|
|
<p class="card-title-desc" style="color: #6c6ff5;">Hasabat</p>
|
|
</div>
|
|
<!-- <div class="col-md-6" style="text-align: right;">
|
|
<button type="button" class="btn btn-primary waves-effect waves-light"
|
|
data-bs-toggle="offcanvas" data-bs-target="#offcanvasBottom"
|
|
aria-controls="offcanvasBottom">
|
|
<i class="ri-add-line align-middle ms-2" style="font-size: 17px;"></i> Добавить
|
|
</button>
|
|
</div> -->
|
|
</div>
|
|
|
|
<p id="product_count" style="color: transparent;position: absolute;">{{productCounts}}</p>
|
|
{% for key, record in records %}
|
|
<p id="product_id_{{key}}" style="color: transparent;font-size: 1;position: absolute;">{{record.id}}</p>
|
|
{% endfor %}
|
|
<div class="table-responsive" style="margin-bottom: 20px;">
|
|
<table class="table mb-0">
|
|
|
|
<thead class="table-light">
|
|
|
|
<form data-request="onCreateProduction">
|
|
<tr>
|
|
<th style="background: #daddff;">Täze maglumat</th>
|
|
<th style="background: #daddff;">
|
|
<input type="number" name="all_amount" class="form-control"
|
|
placeholder="JEMI" onchange="getAllAmount(this.value);">
|
|
</th>
|
|
{% for key, record in records %}
|
|
<th style="background: #daddff;">
|
|
<input type="number" onchange="getValues();" step="0.01"
|
|
name="product_{{record.code}}" id="product_{{key}}" class="form-control"
|
|
placeholder="{{record.name}} %">
|
|
</th>
|
|
{% endfor %}
|
|
<th style="background: #daddff;">
|
|
<input type="text" name="note" class="form-control" placeholder="Bellik">
|
|
</th>
|
|
<th style="background: #daddff;">
|
|
<button type="submit"
|
|
class="btn btn-primary waves-effect waves-light">Goş</button>
|
|
</th>
|
|
</tr>
|
|
</form>
|
|
|
|
</thead>
|
|
</table>
|
|
</div>
|
|
|
|
|
|
<table id="datatable-buttons" class="table table-striped table-bordered dt-responsive nowrap"
|
|
style="border-collapse: collapse; border-spacing: 0; width: 100%;">
|
|
<thead>
|
|
<tr>
|
|
<th style="width: 5%;">№</th>
|
|
<th>Senesi</th>
|
|
<th>Hemmesi</th>
|
|
{% for key, record in records %}
|
|
<th>{{record.name}}</th>
|
|
{% endfor %}
|
|
<th>Bellik</th>
|
|
<!-- <th>Настройки</th> -->
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
|
|
{% for key, report in productions %}
|
|
<tr>
|
|
<td style="font-weight: bold;width: 5%;">{{key + 1}}</td>
|
|
<td><a href="#"
|
|
style="font-weight: bold;color: #0005c5;">{{report.created_at|date('d.m.Y |
|
|
H:i')}}</a></td>
|
|
<td style="text-align: center;">
|
|
<span class="badge badge-soft-success"
|
|
style="font-size: 14px;">{{report.all_amount|number_format}} kg</span>
|
|
</td>
|
|
|
|
{% for product in report.pivot_production %}
|
|
<td>{{product.amount_percentage|number_format(2)}} %
|
|
<!-- {% if product.amount != 0 %}<br>
|
|
<span style="font-size: 12px;color: darkgray;"> {{product.amount|number_format}}
|
|
kg</span> {% endif %} -->
|
|
</td>
|
|
{% endfor %}
|
|
|
|
<td style="font-weight: bold;color: #0005c5;">{{report.note}}</td>
|
|
</tr>
|
|
{% endfor %}
|
|
|
|
</tbody>
|
|
<tfoot>
|
|
<tr>
|
|
<th style="width: 5%;">№</th>
|
|
<th>Senesi</th>
|
|
<th>Hemmesi</th>
|
|
{% for key, record in records %}
|
|
<th>{{record.name}}</th>
|
|
{% endfor %}
|
|
<th>Bellik</th>
|
|
</tr>
|
|
</tfoot>
|
|
</table>
|
|
</div>
|
|
|
|
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
{% partial 'dataTableJs' %}
|
|
|
|
{% put scripts %}
|
|
|
|
<script>
|
|
|
|
function getAllAmount(amount) {
|
|
//var all_amount = document.getElementById("all_amount").value;
|
|
$('#all_amount').html(`JEMI: ` + amount + ` kg`);
|
|
}
|
|
|
|
function getValues() {
|
|
var prodCount = document.getElementById('product_count').innerHTML;
|
|
|
|
var fieldValues = [];
|
|
// console.log(prodCount);
|
|
for (let i = 0; i < prodCount; i++) {
|
|
var prod = document.getElementById("product_" + i).value;
|
|
var prodId = document.getElementById("product_id_" + i).innerHTML;
|
|
|
|
fieldValues[i] = prod ? parseFloat(prod) : 0;
|
|
|
|
calculate(prodId, prod);
|
|
//console.log("q" + i + ": " + prod);
|
|
}
|
|
|
|
var all = eval(fieldValues.join('+'));
|
|
|
|
$('#percentage').html(`<i class="mdi mdi-bullseye-arrow me-3"></i> ` + all.toFixed(2) + ` %`);
|
|
// console.log(fieldValues);
|
|
// console.log(eval(fieldValues.join('+')));
|
|
// return eval(fieldValues.join('+'));
|
|
}
|
|
|
|
function calculate(prodId, value) {
|
|
$.request('onCalculateAvg', {
|
|
data: {'prod_id': prodId, 'field_value': value},
|
|
success: function (data) {
|
|
|
|
$('#avg_percentage_' + prodId).html(`<i class="mdi mdi-bullseye-arrow me-3"></i> `+ data.avg_percentage +` %`);
|
|
$('#avg_amount_' + prodId).html(`ORTAÇA: `+ data.avg_amount +` kg`);
|
|
|
|
}
|
|
});
|
|
}
|
|
|
|
</script>
|
|
|
|
{% endput %}
|