2023-10-04 20:51:27 +00:00
< ? php
namespace Romanah\Gokbakja\Components ;
use Cms\Classes\ComponentBase ;
use Romanah\Gokbakja\Models\Production as ProductionModel ;
use Romanah\Gokbakja\Models\PivotProduction as PivotProductionModel ;
use Romanah\Gokbakja\Models\SewerProduction as SewerModel ;
use Redirect ;
use Carbon\Carbon ;
use Flash ;
use DB ;
2023-11-06 21:06:48 +00:00
use Romanah\Gokbakja\Models\BagAction ;
2023-10-20 21:54:07 +00:00
use Romanah\Gokbakja\Models\ProductionMachine ;
use Romanah\Gokbakja\Models\PivotSewer ;
2023-11-06 21:06:48 +00:00
use Romanah\Gokbakja\Models\RulonAction ;
2023-11-23 13:47:30 +00:00
use Romanah\Gokbakja\Models\SewerMachine ;
use Romanah\Gokbakja\Models\Shift ;
2023-11-06 21:06:48 +00:00
use Romanah\Gokbakja\Models\Stock ;
2023-10-04 20:51:27 +00:00
class Sewer extends ComponentBase
{
public $sewers ;
public function componentDetails ()
{
return [
'name' => 'Sewer' ,
'description' => 'Sewer settings'
];
}
2023-10-20 21:54:07 +00:00
public function onModalSetSewer ()
{
$data = post ();
2023-10-04 20:51:27 +00:00
2023-10-20 21:54:07 +00:00
$sewerProd = SewerModel :: where ( " id " , $data [ " sewerId " ]) -> with ( " employee " , " pivot_sewer " ) -> first ();
2023-11-23 13:47:30 +00:00
$shifts = Shift :: get ();
$sewerMachines = SewerMachine :: get ();
2023-10-20 21:54:07 +00:00
$html_data = ' < div class = " modal-header " >
2023-10-22 23:05:55 +00:00
< h5 class = " modal-title " id = " mySmallModalLabel " > Önümçilik No #' . $sewerProd->id . ', Rulon: ' . $sewerProd->pivot_sewer[0]->amount . ' kg</h5>
2023-10-20 21:54:07 +00:00
< button type = " button " class = " btn-close " data - bs - dismiss = " modal "
aria - label = " Close " ></ button >
</ div >
< div class = " modal-body " >
2023-11-23 13:47:30 +00:00
< form data - request = " onUpdateSewerItem " method = " POST " data - request - flash data - request - confirm = " BRAK halta sanyna seretdinizmi? Maglumatlar dogry bolsa Tassyklan. " >
2023-10-20 21:54:07 +00:00
< div class = " row " >
< div class = " col-md-12 mt-3 " >
< div >
< label class = " form-label " > Status </ label >
2023-11-23 13:47:30 +00:00
< select class = " form-control select2 " name = " status " ' . ($sewerProd->pivot_sewer[0]->status == ' complated ' ? "disabled" : "") . ' >
2023-10-22 23:05:55 +00:00
< option value = " working " ' . ($sewerProd->pivot_sewer[0]->status == ' working ' ? "selected" : "") . ' > Işlenýär </ option >
< option value = " complated " ' . ($sewerProd->pivot_sewer[0]->status == ' complated ' ? "selected" : "") . ' > Tamamlandy </ option >
2023-10-20 21:54:07 +00:00
</ select >
</ div >
</ div >
2023-11-23 13:47:30 +00:00
< div class = " col-md-12 mt-3 " >
< div >
< label class = " form-label " > Smen Saýlaň </ label >
< select class = " form-control select2 " name = " shift_id " ' . ($sewerProd->pivot_sewer[0]->status == ' complated ' ? "disabled" : "") . ' > ' ;
for ( $x = 0 ; $x < count ( $shifts ); $x ++ ) {
$html_data .= '<option value="' . $shifts [ $x ] -> id . '" ' . ( $sewerProd -> shift_id == $shifts [ $x ] -> id ? ' selected' : '' ) . '>' . $shifts [ $x ] -> desc . '</option>' ;
}
$html_data .= ' </ select >
</ div >
</ div >
< div class = " col-md-12 mt-3 " >
< div >
< label class = " form-label " > Stanok Saýlaň </ label >
< select class = " form-control select2 " name = " sewer_machine_id " ' . ($sewerProd->pivot_sewer[0]->status == ' complated ' ? "disabled" : "") . ' > ' ;
for ( $x = 0 ; $x < count ( $sewerMachines ); $x ++ ) {
$html_data .= '<option value="' . $sewerMachines [ $x ] -> id . '" ' . ( $sewerProd -> sewer_machine_id == $sewerMachines [ $x ] -> id ? ' selected' : '' ) . '>' . $sewerMachines [ $x ] -> name . '</option>' ;
}
$html_data .= ' </ select >
</ div >
</ div >
2023-10-22 23:05:55 +00:00
< div class = " col-md-12 mt-3 " >
< div >
< label class = " form-label " > Ugramaly Senesi </ label >
< div class = " input-group " id = " datepicker2 " >
< input type = " text " class = " form-control " placeholder = " d.m.Y "
data - date - format = " d.m.yyyy " data - date - container = " #datepicker2 " data - provide = " datepicker "
data - date - autoclose = " true " name = " date " value = " ' . (Carbon::parse( $sewerProd->date )->format('d.m.Y')) . ' " ' . ($sewerProd->pivot_sewer[0]->status == ' complated ' ? "disabled" : "") . ' >
2023-10-04 20:51:27 +00:00
2023-10-22 23:05:55 +00:00
< span class = " input-group-text " >< i class = " mdi mdi-calendar " ></ i ></ span >
</ div >
</ div >
</ div >
2023-10-20 21:54:07 +00:00
< div class = " col-md-12 mt-3 " >
< div >
< label class = " form-label " > Halta Ini </ label >
2023-10-04 20:51:27 +00:00
2023-10-20 21:54:07 +00:00
< input type = " number " name = " width " step = " 0.01 " class = " form-control "
2023-10-22 23:05:55 +00:00
placeholder = " Halta Ini " value = " ' . ( $sewerProd->width == null ? 0 : $sewerProd->width ) . ' " ' . ($sewerProd->pivot_sewer[0]->status == ' complated ' ? "disabled" : "") . ' >
2023-10-20 21:54:07 +00:00
</ div >
</ div >
< div class = " col-md-12 mt-3 " >
< div >
< label class = " form-label " > Halta Boýy </ label >
< input type = " number " name = " height " step = " 0.01 " class = " form-control "
2023-10-22 23:05:55 +00:00
placeholder = " Halta Boýy " value = " ' . ( $sewerProd->height == null ? 0 : $sewerProd->height ) . ' " ' . ($sewerProd->pivot_sewer[0]->status == ' complated ' ? "disabled" : "") . ' >
2023-10-20 21:54:07 +00:00
</ div >
</ div >
< div class = " col-md-12 mt-3 " >
2023-11-21 19:52:16 +00:00
< div >
2023-11-23 13:47:30 +00:00
< label class = " form-label " > Tikilen Halta ( arassa ) </ label >
2023-11-21 19:52:16 +00:00
< input type = " number " name = " produced_bag_qty " class = " form-control "
placeholder = " tikilen halta sany " value = " ' . ( $sewerProd->produced_bag_qty ?? 0) . ' " ' . ($sewerProd->pivot_sewer[0]->status == ' complated ' ? "disabled" : "") . ' >
</ div >
2023-10-20 21:54:07 +00:00
</ div >
< div class = " col-md-12 mt-3 " >
< div >
2023-11-21 19:52:16 +00:00
< label class = " form-label " > BRAK Halta sany </ label >
2023-10-20 21:54:07 +00:00
2023-11-21 19:52:16 +00:00
< input type = " number " name = " defective_bag_qty " class = " form-control "
2023-11-23 13:47:30 +00:00
placeholder = " brak halta sany " value = " ' . ( $sewerProd->defective_bag_qty ?? '') . ' " ' . ($sewerProd->pivot_sewer[0]->status == ' complated ' ? "disabled" : "") . ' >
</ div >
</ div >
< div class = " col-md-12 mt-3 " >
< div >
< label class = " form-label " > Sürülmedik Halta sany </ label >
< input type = " number " name = " defective_repair_qty " class = " form-control "
placeholder = " Sürülmedik Halta sany " value = " ' . ( $sewerProd->defective_repair_qty ?? 0) . ' " ' . ($sewerProd->pivot_sewer[0]->status == ' complated ' ? "disabled" : "") . ' >
</ div >
</ div >
< div class = " col-md-12 mt-3 " >
< div >
< label class = " form-label " > Turba agramy </ label >
< input type = " number " name = " pipe_weight " class = " form-control "
placeholder = " Turba agramy " value = " ' . ( $sewerProd->pipe_weight ?? 0) . ' " ' . ($sewerProd->pivot_sewer[0]->status == ' complated ' ? "disabled" : "") . ' step = " 0.01 "
pattern = " /^-? \ d+ \ .? \ d* $ / "
onKeyPress = " if(this.value.length==4) return false; " >
2023-10-22 23:05:55 +00:00
2023-10-20 21:54:07 +00:00
</ div >
</ div >
< div class = " col-md-12 mt-3 " >
< div >
< label class = " form-label " > Bellik </ label >
2023-10-22 23:05:55 +00:00
< input type = " text " name = " note " class = " form-control " placeholder = " Bellik " value = " ' . $sewerProd->note . ' " ' . ($sewerProd->pivot_sewer[0]->status == ' complated ' ? "disabled" : "") . ' >
2023-10-20 21:54:07 +00:00
</ div >
</ div >
</ div >
< input type = " hidden " name = " sewer_id " value = " ' . $data["sewerId"] . ' " >
< button type = " submit " data - bs - dismiss = " modal "
class = " btn btn-primary waves-effect waves-light "
style = " margin-top: 15px;width: 100%; " > Üýtget </ button >
</ form >
</ div > ' ;
return [
'#modal-form' => $html_data ,
];
}
public function onUpdateSewerItem ()
{
2023-11-19 19:59:08 +00:00
$currentDate = Carbon :: now ();
2023-11-06 21:06:48 +00:00
$user = \Auth :: user ();
2023-10-20 21:54:07 +00:00
$currentDateFormat = $currentDate -> format ( 'Y-m-d' );
2023-11-06 21:06:48 +00:00
$stock = Stock :: where ( " type " , 'rulon' ) -> first ();
$stockBag = Stock :: where ( " type " , 'bag' ) -> first ();
2023-10-20 21:54:07 +00:00
$data = post ();
2023-10-22 23:05:55 +00:00
if ( $data [ " produced_bag_qty " ] == 0 ) {
2023-10-25 21:03:07 +00:00
Flash :: error ( " Tikilen halta sanyny girizin " );
return Redirect :: refresh ();
2023-10-20 21:54:07 +00:00
} else {
2023-11-19 19:59:08 +00:00
if (( $data [ " status " ] == " complated " ) && ( $data [ " produced_bag_qty " ] > 0 )) {
2023-11-06 21:06:48 +00:00
$sewer = SewerModel :: where ( " id " , $data [ " sewer_id " ]) -> first ();
$pivotSewer = PivotSewer :: where ( " sewer_production_id " , $data [ " sewer_id " ]) -> first ();
// $spentCalc = (float)((float) $pivotSewer->amount - (float) $data["left_amount"]);
$spentCalc = ( float )(( float ) $data [ " produced_bag_qty " ] * ( float ) $pivotSewer -> bag_gram ) / 1000 ;
2023-11-21 19:52:16 +00:00
$spentCalcDefective = ( float )(( float ) $data [ " defective_bag_qty " ] * ( float ) $pivotSewer -> bag_gram ) / 1000 ;
2023-11-23 13:47:30 +00:00
$spentCalcDefectiveRepair = ( float )(( float ) $data [ " defective_repair_qty " ] * ( float ) $pivotSewer -> bag_gram ) / 1000 ;
$spentCalcDefectiveAll = ( float )( $spentCalcDefective + $spentCalcDefectiveRepair );
2023-11-21 19:52:16 +00:00
2023-11-06 21:06:48 +00:00
$leftCalc = ( float )(( float ) $pivotSewer -> amount - $spentCalc );
2023-11-23 13:47:30 +00:00
$sewer -> shift_id = $data [ " shift_id " ];
$sewer -> sewer_machine_id = $data [ " sewer_machine_id " ];
$sewer -> defective_repair_qty = ( float ) $data [ " defective_repair_qty " ];
$sewer -> pipe_weight = ( float ) $data [ " pipe_weight " ];
2023-11-21 19:52:16 +00:00
2023-11-06 21:06:48 +00:00
$sewer -> produced_bag_qty = ( float ) $data [ " produced_bag_qty " ];
2023-11-21 19:52:16 +00:00
$sewer -> defective_bag_qty = ( float ) $data [ " defective_bag_qty " ];
2023-11-06 21:06:48 +00:00
$sewer -> width = ( float ) $data [ " width " ];
$sewer -> height = ( float ) $data [ " height " ];
$sewer -> date = Carbon :: parse ( $data [ " date " ]) -> format ( 'Y-m-d' );
$sewer -> note = $data [ " note " ];
$sewer -> save ();
2023-11-23 13:47:30 +00:00
$pivotSewer -> left_amount = ( float ) (( float ) $leftCalc - ( float ) $spentCalcDefectiveAll );
$pivotSewer -> spent_amount = ( float ) (( float ) $spentCalc + ( float ) $spentCalcDefectiveAll );
$pivotSewer -> spent_defective_amount = ( float ) $spentCalcDefectiveAll ;
2023-11-06 21:06:48 +00:00
$pivotSewer -> status = $data [ " status " ];
$pivotSewer -> save ();
$currentRulonAction = RulonAction :: where ( " id " , $pivotSewer -> rulon_action_id ) -> first ();
$createResult = new RulonAction ();
$createResult -> product_id = $currentRulonAction -> product_id ;
$createResult -> type = 'inbox' ;
$createResult -> status_accountant = " new " ;
$createResult -> status_director = " new " ;
$createResult -> note = " #Dikiş " . $sewer -> id . " galyndy " ;
2023-11-21 19:52:16 +00:00
$createResult -> amount = ( float ) $pivotSewer -> left_amount ;
2023-11-06 21:06:48 +00:00
$createResult -> stock_id = $stock -> id ;
$createResult -> user_id = $user -> id ;
$createResult -> save ();
$createResultBag = new BagAction ();
$createResultBag -> product_id = $sewer -> id ;
$createResultBag -> type = 'inbox' ;
$createResultBag -> status_accountant = " new " ;
$createResultBag -> status_director = " new " ;
$createResultBag -> note = " #Dikiş " . $sewer -> id . " #Rulon " . $currentRulonAction -> product_id ;
$createResultBag -> amount = $sewer -> produced_bag_qty ;
$createResultBag -> stock_id = $stockBag -> id ;
$createResultBag -> user_id = $user -> id ;
$createResultBag -> save ();
if ( $sewer && $pivotSewer && $createResult && $createResultBag ) {
Flash :: success ( " Maglumatlar Ustunlikli Üýtgedildi " );
return Redirect :: refresh ();
} else {
Flash :: error ( " Yalnyshlyk bar!! " );
return Redirect :: refresh ();
}
} else {
2023-11-19 19:59:08 +00:00
Flash :: error ( " Statusy Tamlaň ya-da halta sany girizilmedik " );
2023-10-22 23:05:55 +00:00
return Redirect :: refresh ();
}
2023-10-20 21:54:07 +00:00
}
}
public function onRender ()
{
2023-11-03 18:53:36 +00:00
$user = \Auth :: user ();
2023-10-20 21:54:07 +00:00
$html_data = '' ;
2023-10-04 20:51:27 +00:00
2023-11-19 21:37:53 +00:00
$crudSewerProductionq = $this -> page [ " crudSewerProduction " ];
2023-11-23 13:47:30 +00:00
$sewerDatas = SewerModel :: with ([ " employee " , " shift " , " sewer_machine " ]) -> with ([ " pivot_sewer " => function ( $q ) {
2023-11-06 21:06:48 +00:00
$q -> with ([ " rulon_action.product.bag_type " , " rulon_action.product.bag_size " , " rulon_action.product.color " ]);
}]) -> orderBy ( 'id' , 'DESC' ) -> get ();
2023-10-20 21:54:07 +00:00
// dd($sewerDatas);
2023-10-04 20:51:27 +00:00
for ( $x = 0 ; $x < count ( $sewerDatas ); $x ++ ) {
2023-11-03 18:53:36 +00:00
2023-11-06 21:06:48 +00:00
$dateTitle = ( $sewerDatas [ $x ] -> date == null ? " " : Carbon :: parse ( $sewerDatas [ $x ] -> date ) -> format ( 'd.m.Y' ));
$statusTitle = '' ;
if ( $sewerDatas [ $x ] -> pivot_sewer [ 0 ] -> status == " working " ) {
$statusTitle = " Işlenilýär " ;
} else {
$statusTitle = " Tamamlandy " ;
}
2023-11-03 18:53:36 +00:00
$editBtn = '' ;
2023-11-06 21:06:48 +00:00
if ( $sewerDatas [ $x ] -> user_id != $user -> id ) {
2023-11-03 18:53:36 +00:00
$editBtn = ' < div style = " display: flex;justify-content: center; " >
< div style = " margin-right: 10px; " >
< a type = " button "
class = " btn btn-warning waves-effect waves-light "
style = " padding-top: 5px;padding-bottom: 5px; " >
< i class = " ri-user-line align-middle me-2 " ></ i > Size degişli däl
</ a >
</ div >
</ div > ' ;
2023-11-06 21:06:48 +00:00
} else {
2023-11-19 21:37:53 +00:00
$editBtn = $crudSewerProductionq ? ' < div style = " display: flex;justify-content: center; " >
2023-11-03 18:53:36 +00:00
< div style = " margin-right: 10px; " >
< a type = " button " data - request = " onModalSetSewer "
data - request - data = " sewerId: ' . $sewerDatas[$x] ->id . ' "
data - bs - toggle = " modal " data - bs - target = " .bs-example-modal-sm-1 "
class = " btn btn-warning waves-effect waves-light "
style = " padding-top: 5px;padding-bottom: 5px; " >
< i class = " ri-pencil-line align-middle me-2 " ></ i > Täzele
</ a >
</ div >
< div >
< a type = " button "
2023-11-21 19:52:16 +00:00
data - request = " onDeleteSewerItem "
data - request - data = " sewerId: '. $sewerDatas[$x] ->id.' "
data - request - confirm = " #Dikiş'. $sewerDatas[$x] ->id.' pozmak isleýäňizmi? "
2023-11-03 18:53:36 +00:00
class = " btn btn-danger waves-effect waves-light "
style = " padding-top: 5px;padding-bottom: 5px; " >
< i class = " ri-close-line align-middle me-2 " ></ i > Poz
</ a >
</ div >
2023-11-19 21:37:53 +00:00
</ div > ' : ' ' ;
2023-11-03 18:53:36 +00:00
}
2023-10-04 20:51:27 +00:00
$html_data .= ' < tr >
2023-10-20 21:54:07 +00:00
< td style = " font-weight: bold; " > ' . ($x + 1) . ' </ td >
2023-11-23 13:47:30 +00:00
< td > ' . $dateTitle . ' </ td >
2023-10-23 22:37:45 +00:00
< td style = " font-weight: bold; " > #Dikiş' . $sewerDatas[$x]->id . '</td>
2023-11-23 13:47:30 +00:00
< td > #Rulon' . $sewerDatas[$x]->pivot_sewer[0]->rulon_action->product_id . '- ' . ($sewerDatas[$x]->pivot_sewer[0]->rulon_action->product->bag_size->width ?? "") . 'x' . ($sewerDatas[$x]->pivot_sewer[0]->rulon_action->product->bag_size->height ?? "") . 'm2, ' . ($sewerDatas[$x]->pivot_sewer[0]->rulon_action->product->bag_type->name ?? "") . ', ' . ($sewerDatas[$x]->pivot_sewer[0]->rulon_action->product->color->name ?? "") . '
</ td >
< td >< span class = " badge badge-soft-success "
style = " font-size: 14px; " > ' . number_format($sewerDatas[$x]->pivot_sewer[0]->amount, 2) . ' kg </ span >
</ td >
2023-10-20 21:54:07 +00:00
< td >< span class = " badge badge-soft-primary "
2023-10-22 23:05:55 +00:00
style = " font-size: 14px; " > ini : ' . ($sewerDatas[$x]->width ?? "") . ' - boyy : ' . ($sewerDatas[$x]->height ?? "") . ' </ span >
2023-10-20 21:54:07 +00:00
</ td >
2023-11-06 21:06:48 +00:00
2023-11-23 13:47:30 +00:00
< td >< a href = " # " style = " font-weight: bold; " > ' . ($sewerDatas[$x]->sewer_machine->name ?? "") . ' </ a ></ td >
2023-11-06 21:06:48 +00:00
< td > ' . (number_format($sewerDatas[$x]->pivot_sewer[0]->bag_gram ?? 0, 2)) . ' gr </ td >
2023-11-23 13:47:30 +00:00
< td style = " color: darkgreen !important; " > ' . ($sewerDatas[$x]->produced_bag_qty ?? 0) . ' </ td >
< td style = " color: darkred !important; " > ' . ($sewerDatas[$x]->defective_bag_qty ?? 0) . ' </ td >
< td style = " color: darkred !important; " > ' . ($sewerDatas[$x]->defective_repair_qty ?? 0) . ' </ td >
2023-10-20 21:54:07 +00:00
< td > ' . number_format($sewerDatas[$x]->pivot_sewer[0]->spent_amount, 2) . ' kg </ td >
< td > ' . number_format($sewerDatas[$x]->pivot_sewer[0]->left_amount, 2) . ' kg </ td >
< td >< span class = " badge badge-soft-warning "
style = " font-size: 14px; " > ' . $statusTitle . ' </ span ></ td >
2023-11-06 21:06:48 +00:00
2023-11-23 13:47:30 +00:00
< td > ' . $sewerDatas[$x]->note . ' turba : '.$sewerDatas[$x]->pipe_weight.' </ td >
2023-10-20 21:54:07 +00:00
< td >
2023-11-06 21:06:48 +00:00
' . $editBtn . '
2023-10-04 20:51:27 +00:00
</ td >
</ tr > ' ;
}
return $html_data ;
}
2023-10-09 21:53:59 +00:00
public function onReportSewer ()
{
2023-11-19 19:59:08 +00:00
$currentDate = Carbon :: now ();
2023-10-09 21:53:59 +00:00
$currentDateFormat = $currentDate -> format ( 'Y-m-d' );
$data = post ();
2023-11-07 19:42:21 +00:00
$sewerProductions = SewerModel :: with ([ " employee " , " rulon_action.product.bag_size " , " rulon_action.product.bag_type " , " rulon_action.product.color " , " pivot_sewer " ]) -> orderBy ( 'id' , 'DESC' );
2023-10-09 21:53:59 +00:00
$start = Carbon :: parse ( $data [ " start " ]) -> format ( 'Y-m-d' );
$end = Carbon :: parse ( $data [ " end " ]) -> format ( 'Y-m-d' );;
$employee = $data [ " employee_id " ];
$min = $data [ " min " ];
$max = $data [ " max " ];
2023-10-22 23:05:55 +00:00
$status = $data [ " status " ];
$width = $data [ " width " ];
$height = $data [ " height " ];
2023-10-23 22:37:45 +00:00
$color_id = $data [ " color_id " ];
2023-11-01 21:07:33 +00:00
$bag_gram = $data [ " bag_gram " ];
2023-10-09 21:53:59 +00:00
2023-10-22 23:05:55 +00:00
if ( $height ) {
$sewerProductions -> where ( " height " , $height );
}
if ( $width ) {
$sewerProductions -> where ( " width " , $width );
}
2023-10-09 21:53:59 +00:00
if ( $employee ) {
$sewerProductions -> where ( " employee_id " , $employee );
}
2023-10-22 23:05:55 +00:00
if ( $status ) {
2023-11-06 21:06:48 +00:00
$sewerProductions -> with ( " pivot_sewer " ) -> whereHas ( 'pivot_sewer' , function ( $query ) use ( $status ) {
2023-10-22 23:05:55 +00:00
$query -> where ( 'status' , $status );
});
}
2023-11-01 21:07:33 +00:00
if ( $bag_gram ) {
2023-11-06 21:06:48 +00:00
$sewerProductions -> with ( " pivot_sewer " ) -> whereHas ( 'pivot_sewer' , function ( $query ) use ( $bag_gram ) {
2023-11-01 21:07:33 +00:00
$query -> where ( 'bag_gram' , $bag_gram );
});
}
2023-10-23 22:37:45 +00:00
if ( $color_id ) {
2023-11-07 19:42:21 +00:00
$sewerProductions -> with ( " rulon_action.product " ) -> whereHas ( 'rulon_action.product' , function ( $query ) use ( $color_id ) {
2023-10-23 22:37:45 +00:00
$query -> where ( 'color_id' , $color_id );
});
}
2023-11-01 21:07:33 +00:00
2023-10-20 21:54:07 +00:00
if ( $min ) {
2023-10-22 23:05:55 +00:00
$sewerProductions -> whereRaw ( 'produced_bag_qty >' . ( $min - 1 ));
2023-10-09 21:53:59 +00:00
}
2023-10-20 21:54:07 +00:00
if ( $max ) {
2023-10-22 23:05:55 +00:00
$sewerProductions -> whereRaw ( 'produced_bag_qty <' . ( $max + 1 ));
2023-10-09 21:53:59 +00:00
}
2023-10-22 23:05:55 +00:00
2023-10-09 21:53:59 +00:00
2023-10-20 21:54:07 +00:00
if ( $start != $currentDateFormat ) {
2023-10-22 23:05:55 +00:00
$sewerProductions -> whereBetween ( 'date' , [ $start , $end ]);
2023-10-09 21:53:59 +00:00
}
2023-10-22 23:05:55 +00:00
$sewerDatas = $sewerProductions -> get ();
$sewerIds = $sewerProductions -> get () -> pluck ( " id " ) -> toArray ();
2023-10-09 21:53:59 +00:00
$sewerProductionsSumBagQty = $sewerProductions -> sum ( " produced_bag_qty " );
2023-11-21 20:31:14 +00:00
$sewerProductionsSumDefectiveBagQty = $sewerProductions -> sum ( " defective_bag_qty " );
2023-10-09 21:53:59 +00:00
2023-10-22 23:05:55 +00:00
$sewerProductionsamount = PivotSewer :: whereIn ( " sewer_production_id " , $sewerIds ) -> sum ( " spent_amount " );
2023-11-06 21:06:48 +00:00
// dd($sewerProductionsamount->spentAmount);
2023-10-20 21:54:07 +00:00
$html_data = '' ;
2023-10-09 21:53:59 +00:00
2023-10-22 23:05:55 +00:00
for ( $x = 0 ; $x < count ( $sewerDatas ); $x ++ ) {
$statusTitle = '' ;
if ( $sewerDatas [ $x ] -> pivot_sewer [ 0 ] -> status == " working " ) {
$statusTitle = " Işlenilýär " ;
} else {
$statusTitle = " Tamamlandy " ;
}
$dateTitle = ( $sewerDatas [ $x ] -> date == null ? " " : Carbon :: parse ( $sewerDatas [ $x ] -> date ) -> format ( 'd.m.Y' ));
2023-10-20 21:54:07 +00:00
$html_data .= ' < tr >
< td style = " font-weight: bold; " > ' . ($x + 1) . ' </ td >
2023-10-23 22:37:45 +00:00
< td style = " font-weight: bold; " > #Dikiş' . $sewerDatas[$x]->id . '</td>
2023-10-22 23:05:55 +00:00
< td >< span class = " badge badge-soft-primary "
style = " font-size: 14px; " > ini : ' . ($sewerDatas[$x]->width ?? "") . ' - boyy : ' . ($sewerDatas[$x]->height ?? "") . ' </ span >
</ td >
2023-11-07 19:42:21 +00:00
< td > #Rulon' . $sewerDatas[$x]->pivot_sewer[0]->rulon_action->product_id . '- ' . ($sewerDatas[$x]->pivot_sewer[0]->rulon_action->product->bag_size->width ?? "") . 'x' . ($sewerDatas[$x]->pivot_sewer[0]->rulon_action->product->bag_size->height ?? "") . 'm2, ' . ($sewerDatas[$x]->pivot_sewer[0]->rulon_action->product->bag_type->name ?? "") . ', ' . ($sewerDatas[$x]->pivot_sewer[0]->rulon_action->product->color->name ?? "") . '
2023-10-22 23:05:55 +00:00
</ td >
< td >< a href = " # " style = " font-weight: bold; " > ' . $sewerDatas[$x]->employee->name . ' </ a ></ td >
< td > ' . $dateTitle . ' </ td >
2023-11-01 21:07:33 +00:00
< td > ' . (number_format($sewerDatas[$x]->pivot_sewer[0]->bag_gram ?? 0, 2)) . ' gr </ td >
2023-10-09 21:53:59 +00:00
< td >< span class = " badge badge-soft-success "
2023-10-22 23:05:55 +00:00
style = " font-size: 14px; " > ' . number_format($sewerDatas[$x]->pivot_sewer[0]->amount, 2) . ' kg </ span >
2023-10-09 21:53:59 +00:00
</ td >
2023-10-22 23:05:55 +00:00
< td > ' . $sewerDatas[$x]->produced_bag_qty . ' </ td >
2023-11-21 20:31:14 +00:00
< td > ' . ($sewerDatas[$x]->defective_bag_qty ?? ' '). ' </ td >
2023-10-22 23:05:55 +00:00
< td > ' . number_format($sewerDatas[$x]->pivot_sewer[0]->spent_amount, 2) . ' kg </ td >
< td > ' . number_format($sewerDatas[$x]->pivot_sewer[0]->left_amount, 2) . ' kg </ td >
< td >< span class = " badge badge-soft-warning "
style = " font-size: 14px; " > ' . $statusTitle . ' </ span ></ td >
< td > ' . $sewerDatas[$x]->note . ' </ td >
2023-10-09 21:53:59 +00:00
</ tr > ' ;
2023-10-20 21:54:07 +00:00
}
2023-10-09 21:53:59 +00:00
2023-10-22 23:05:55 +00:00
if ( $sewerDatas ) {
2023-10-20 21:54:07 +00:00
return [
'#sewer_report_datas' => $html_data ,
2023-11-21 20:31:14 +00:00
'#all_amount' => ' < div class = " col-md-3 " >
2023-10-09 21:53:59 +00:00
< h3 class = " card-title " style = " font-size: 22px;color: #1e2038; " > Tikinçiler Boýunça Umumy </ h3 >
< p class = " card-title-desc " style = " color: #6c6ff5; " > Hasabat </ p >
</ div >
< div class = " col-md-3 " >
< div class = " card bg-info text-white-50 " >
< div class = " card-body " >
2023-10-20 21:54:07 +00:00
< h5 class = " text-white " style = " text-transform: uppercase;margin-bottom: 0; " >< i class = " mdi mdi-bullseye-arrow me-3 " ></ i > Jemi Dikilen Halta : ' . number_format($sewerProductionsSumBagQty) . ' sany </ h5 >
2023-10-09 21:53:59 +00:00
</ div >
</ div >
</ div >
2023-11-21 20:31:14 +00:00
< div class = " col-md-3 " >
< div class = " card bg-danger text-white-50 " >
< div class = " card-body " >
< h5 class = " text-white " style = " text-transform: uppercase;margin-bottom: 0; " >< i class = " mdi mdi-bullseye-arrow me-3 " ></ i > Jemi BRAK Halta : ' . number_format($sewerProductionsSumDefectiveBagQty) . ' sany </ h5 >
</ div >
</ div >
</ div >
2023-10-09 21:53:59 +00:00
< div class = " col-md-3 " >
< div class = " card bg-info text-white-50 " >
< div class = " card-body " >
2023-10-22 23:05:55 +00:00
< h5 class = " text-white " style = " text-transform: uppercase;margin-bottom: 0; " >< i class = " mdi mdi-bullseye-arrow me-3 " ></ i > Jemi Sarp Edilen Çig mal : ' . number_format($sewerProductionsamount, 2) . ' kg </ h5 >
2023-10-09 21:53:59 +00:00
</ div >
</ div >
</ div > ' ,
2023-10-20 21:54:07 +00:00
];
} else {
Flash :: error ( " Yalnyshlyk bar!! " );
}
2023-10-09 21:53:59 +00:00
}
2023-10-04 20:51:27 +00:00
public function onCreateSewerProduction ()
{
2023-11-03 18:53:36 +00:00
$user = \Auth :: user ();
2023-11-19 19:59:08 +00:00
$currentDate = Carbon :: now ();
2023-10-04 20:51:27 +00:00
$currentDateFormat = $currentDate -> format ( 'Y-m-d' );
$data = post ();
2023-11-06 21:06:48 +00:00
$currentRulonAction = RulonAction :: where ( " id " , $data [ " rulon_action_id " ]) -> first ();
$rulonAmountSum = $currentRulonAction -> amount ;
$stock = Stock :: where ( " type " , 'rulon' ) -> first ();
2023-10-20 21:54:07 +00:00
// dd($leftAmount);
2023-10-04 20:51:27 +00:00
2023-10-20 21:54:07 +00:00
$createSewer = new SewerModel ();
2023-11-23 13:47:30 +00:00
$createSewer -> shift_id = $data [ " shift_id " ];
$createSewer -> sewer_machine_id = $data [ " sewer_machine_id " ];
2023-10-20 21:54:07 +00:00
$createSewer -> produced_bag_qty = 0 ;
2023-11-21 19:52:16 +00:00
$createSewer -> defective_bag_qty = 0 ;
2023-11-03 18:53:36 +00:00
$createSewer -> user_id = $user -> id ;
2023-10-20 21:54:07 +00:00
$createSewer -> note = $data [ " note " ] ? ? '' ;
2023-11-06 21:06:48 +00:00
$createSewer -> rulon_action_id = $data [ " rulon_action_id " ];
2023-10-20 21:54:07 +00:00
$createSewer -> width = ( float ) $data [ " width " ];
$createSewer -> height = ( float ) $data [ " height " ];
2023-10-22 23:05:55 +00:00
$createSewer -> date = Carbon :: parse ( $data [ " date " ]) -> format ( 'Y-m-d' );
2023-10-20 21:54:07 +00:00
$createSewer -> save ();
2023-10-04 20:51:27 +00:00
2023-10-20 21:54:07 +00:00
$createPivotSewer = new PivotSewer ();
2023-11-06 21:06:48 +00:00
$createPivotSewer -> rulon_action_id = $createSewer -> rulon_action_id ;
2023-10-20 21:54:07 +00:00
$createPivotSewer -> sewer_production_id = $createSewer -> id ;
$createPivotSewer -> left_amount = 0 ;
2023-11-01 21:07:33 +00:00
$createPivotSewer -> bag_gram = ( float ) $data [ " bag_gram " ];
2023-11-06 21:06:48 +00:00
$createPivotSewer -> amount = $rulonAmountSum ;
2023-10-20 21:54:07 +00:00
$createPivotSewer -> save ();
2023-10-04 20:51:27 +00:00
2023-11-06 21:06:48 +00:00
$createResult = new RulonAction ();
$createResult -> product_id = $currentRulonAction -> product_id ;
$createResult -> type = 'outbox' ;
$createResult -> amount = - $rulonAmountSum ;
$createResult -> stock_id = $stock -> id ;
$createResult -> user_id = $user -> id ;
$createResult -> note = " #Dikiş " . $createSewer -> id . " üçin çykaryldy " ;
$createResult -> save ();
2023-10-04 20:51:27 +00:00
2023-11-06 21:06:48 +00:00
if ( $createSewer && $createPivotSewer && $createResult ) {
2023-10-04 20:51:27 +00:00
2023-10-20 21:54:07 +00:00
Flash :: success ( " Maglumatlar Ustunlikli Goshuldy " );
return Redirect :: refresh ();
} else {
2023-11-06 21:06:48 +00:00
Flash :: error ( " Yalnyshlyk bar!! " );
2023-10-20 21:54:07 +00:00
return Redirect :: refresh ();
}
}
2023-11-21 19:52:16 +00:00
public function onDeleteSewerItem ()
{
$data = post ();
$user = \Auth :: user ();
$sewer = SewerModel :: where ( " id " , $data [ " sewerId " ]) -> with ([ 'pivot_sewer' , 'rulon_action.product' ]) -> first ();
if ( $sewer ){
2023-11-21 21:03:13 +00:00
if ( $sewer -> produced_bag_qty > 0 ){
$stock = Stock :: where ( " type " , 'rulon' ) -> first ();
2023-11-21 19:52:16 +00:00
2023-11-21 21:03:13 +00:00
$createResult = new RulonAction ();
$createResult -> product_id = $sewer -> rulon_action -> product_id ;
$createResult -> type = 'inbox' ;
$createResult -> amount = ( float ) $sewer -> pivot_sewer [ 0 ] -> spent_amount ;
$createResult -> stock_id = $stock -> id ;
$createResult -> user_id = $user -> id ;
$createResult -> note = " #Dikiş " . $sewer -> id . " maglumat girizidi, soňundan pozulan " ;
$createResult -> save ();
$stockBag = Stock :: where ( " type " , 'bag' ) -> first ();
$createResultBag = new BagAction ();
$createResultBag -> product_id = $sewer -> id ;
$createResultBag -> type = 'outbox' ;
$createResultBag -> status_accountant = " new " ;
$createResultBag -> status_director = " new " ;
$createResultBag -> note = " #Dikiş " . $sewer -> id . " maglumat girizidi, soňundan pozulan " ;
$createResultBag -> amount = - $sewer -> produced_bag_qty ;
$createResultBag -> stock_id = $stockBag -> id ;
$createResultBag -> user_id = $user -> id ;
$createResultBag -> save ();
} elseif ( $sewer -> produced_bag_qty == 0 ){
$stock = Stock :: where ( " type " , 'rulon' ) -> first ();
$createResult = new RulonAction ();
$createResult -> product_id = $sewer -> rulon_action -> product_id ;
$createResult -> type = 'inbox' ;
$createResult -> amount = ( float ) $sewer -> pivot_sewer [ 0 ] -> amount ;
$createResult -> stock_id = $stock -> id ;
$createResult -> user_id = $user -> id ;
$createResult -> note = " #Dikiş " . $sewer -> id . " maglumat girizidi, soňundan pozulan " ;
$createResult -> save ();
}
2023-11-21 19:52:16 +00:00
}
$sewer -> delete ();
if ( $sewer ) {
Flash :: success ( " Dikish Ustunlikli Pozuldy " );
return Redirect :: refresh ();
} else {
Flash :: error ( " Yalnyshlyk bar!! " );
return Redirect :: refresh ();
}
}
2023-10-04 20:51:27 +00:00
}