« Back to History
yarn_consumption_graph.php
|
20260722_120325.php
Initial Domain Snapshot
Copy Code
<?php /* ========================================================= File: yarn_consumption_bw_meter_flex_select.php Purpose: User-selected Denier / Color wise Report ========================================================= */ error_reporting(E_ALL); @ini_set('display_errors', 1); require_once __DIR__ . '/modules/auth/page_acl.php'; $ctx = page_require_access('yarn_entry'); $company_id = (int)$ctx['company_id']; $pdo = $ctx['pdo']; function h($s){ return htmlspecialchars((string)$s, ENT_QUOTES, 'UTF-8'); } function gp($k,$d=''){ return $_GET[$k] ?? $d; } /* ---------------- Filters ---------------- */ $report_type = gp('report_type','denier'); // denier | color $start = gp('start', date('Y-m-01')); $end = gp('end', date('Y-m-d')); $deniersSel = $_GET['denier'] ?? []; $colorsSel = $_GET['color'] ?? []; if (!is_array($deniersSel)) $deniersSel=[]; if (!is_array($colorsSel)) $colorsSel=[]; $tbl = 'yarn_out'; /* ---------------- Denier options ---------------- */ $denierOpts=[]; $q=$pdo->prepare(" SELECT DISTINCT denier FROM $tbl WHERE company_id=:cid AND txn_date BETWEEN :sd AND :ed AND denier <> '' ORDER BY denier "); $q->execute([':cid'=>$company_id,':sd'=>$start,':ed'=>$end]); while($r=$q->fetch()) $denierOpts[]=$r['denier']; /* ---------------- Color options ---------------- */ $colorOpts=[]; $q=$pdo->prepare(" SELECT DISTINCT color FROM $tbl WHERE company_id=:cid AND txn_date BETWEEN :sd AND :ed AND color <> '' ORDER BY color "); $q->execute([':cid'=>$company_id,':sd'=>$start,':ed'=>$end]); while($r=$q->fetch()) $colorOpts[]=$r['color']; /* ---------------- Build Reports ---------------- */ $reports=[]; /* ===== DENIER WISE ===== */ if ($report_type==='denier' && $deniersSel) { foreach($deniersSel as $denier){ $rows=[]; $total=0; $q=$pdo->prepare(" SELECT color, SUM(weight) wt FROM $tbl WHERE company_id=:cid AND denier=:de AND txn_date BETWEEN :sd AND :ed GROUP BY color HAVING wt>0 ORDER BY wt DESC "); $q->execute([ ':cid'=>$company_id, ':de'=>$denier, ':sd'=>$start, ':ed'=>$end ]); while($r=$q->fetch()){ $rows[]=$r; $total+=$r['wt']; } if(!$rows) continue; $items=[]; foreach($rows as $r){ $pct=round(($r['wt']/$total)*100,2); $dq=$pdo->prepare(" SELECT txn_date, SUM(weight) wt FROM $tbl WHERE company_id=:cid AND denier=:de AND color=:cl AND txn_date BETWEEN :sd AND :ed GROUP BY txn_date ORDER BY txn_date "); $dq->execute([ ':cid'=>$company_id, ':de'=>$denier, ':cl'=>$r['color'], ':sd'=>$start, ':ed'=>$end ]); $items[]=[ 'label'=>$r['color'], 'wt'=>$r['wt'], 'pct'=>$pct, 'details'=>$dq->fetchAll() ]; } $reports[]=[ 'title'=>"Denier: $denier", 'items'=>$items ]; } } /* ===== COLOR WISE ===== */ if ($report_type==='color' && $colorsSel) { foreach($colorsSel as $color){ $rows=[]; $total=0; $q=$pdo->prepare(" SELECT denier, SUM(weight) wt FROM $tbl WHERE company_id=:cid AND color=:cl AND txn_date BETWEEN :sd AND :ed GROUP BY denier HAVING wt>0 ORDER BY wt DESC "); $q->execute([ ':cid'=>$company_id, ':cl'=>$color, ':sd'=>$start, ':ed'=>$end ]); while($r=$q->fetch()){ $rows[]=$r; $total+=$r['wt']; } if(!$rows) continue; $items=[]; foreach($rows as $r){ $pct=round(($r['wt']/$total)*100,2); $dq=$pdo->prepare(" SELECT txn_date, SUM(weight) wt FROM $tbl WHERE company_id=:cid AND denier=:de AND color=:cl AND txn_date BETWEEN :sd AND :ed GROUP BY txn_date ORDER BY txn_date "); $dq->execute([ ':cid'=>$company_id, ':de'=>$r['denier'], ':cl'=>$color, ':sd'=>$start, ':ed'=>$end ]); $items[]=[ 'label'=>$r['denier'], 'wt'=>$r['wt'], 'pct'=>$pct, 'details'=>$dq->fetchAll() ]; } $reports[]=[ 'title'=>"Color: $color", 'items'=>$items ]; } } ?> <!doctype html> <html> <head> <meta charset="utf-8"> <title>Selectable Denier / Color Report</title> <link rel="stylesheet" href="/erp/public/assets/css/main.css?v=20251005"> </head> <body> <?php include __DIR__.'/partials/header.php'; ?> <div class="wrap"> <div class="card"> <h3>Yarn Consumption – User Selectable Report</h3> <form method="get" class="erp-form-grid row"> <div class="form-group"> <label>Report Type <select name="report_type" onchange="this.form.submit()"> <option value="denier" <?=$report_type==='denier'?'selected':''?>>Denier Wise</option> <option value="color" <?=$report_type==='color'?'selected':''?>>Color Wise</option> </select> </label> </div> <div class="form-group"> <label>Start <input type="date" name="start" value="<?=h($start)?>"> </label> </div> <div class="form-group"> <label>End <input type="date" name="end" value="<?=h($end)?>"> </label> </div> <?php if($report_type==='denier'): ?> <div class="form-group"> <label>Select Denier (Multiple) <select name="denier[]" multiple size="6"> <?php foreach($denierOpts as $d): ?> <option value="<?=h($d)?>" <?=in_array($d,$deniersSel,true)?'selected':''?>><?=h($d)?></option> <?php endforeach; ?> </select> </label> </div> <?php endif; ?> <?php if($report_type==='color'): ?> <div class="form-group"> <label>Select Color (Multiple) <select name="color[]" multiple size="6"> <?php foreach($colorOpts as $c): ?> <option value="<?=h($c)?>" <?=in_array($c,$colorsSel,true)?'selected':''?>><?=h($c)?></option> <?php endforeach; ?> </select> </label> </div> <?php endif; ?> <div class="form-group form-actions"> <button class="btn btn--primary">Apply</button> </div> </form> <?php if($reports): foreach($reports as $idx=>$rep): ?> <hr> <h4><?=h($rep['title'])?></h4> <table class="table table--compact"> <thead> <tr> <th><?= $report_type==='denier'?'Color':'Denier' ?></th> <th class="right">Weight</th> <th class="right">%</th> </tr> </thead> <tbody> <?php foreach($rep['items'] as $i=>$it): ?> <tr onclick="toggle('d<?=$idx?>_<?=$i?>')" style="cursor:pointer"> <td><b><?=h($it['label'])?></b></td> <td class="right"><?=number_format($it['wt'],3)?></td> <td class="right"><?=$it['pct']?>%</td> </tr> <tr id="d<?=$idx?>_<?=$i?>" style="display:none"> <td colspan="3"> <table class="table table--compact"> <thead><tr><th>Date</th><th class="right">Weight</th></tr></thead> <tbody> <?php foreach($it['details'] as $d): ?> <tr> <td><?=h($d['txn_date'])?></td> <td class="right"><?=number_format($d['wt'],3)?></td> </tr> <?php endforeach; ?> </tbody> </table> </td> </tr> <?php endforeach; ?> </tbody> </table> <?php endforeach; endif; ?> </div> </div> <?php include __DIR__.'/partials/footer.php'; ?> <script> function toggle(id){ const r=document.getElementById(id); if(r) r.style.display=(r.style.display==='none')?'table-row':'none'; } </script> </body> </html>