2024-10-16 19:18:52 +05:30
< ?
//include ('pdf_header_reverse.php');
include ( 'includes/config/config.php' );
include ( 'includes/functions.php' );
?>
< ? php
$month = $_POST [ 'month15' ];
error_log ( " month: " . date ( " F " , mktime ( 0 , 0 , 0 , $month , 10 )) . " " . $month );
$year = $_POST [ 'year15' ];
error_log ( " year: " . $year );
$ohc = $_SESSION [ 'current_ohcttype' ];
$month_name = date ( " F " , mktime ( 0 , 0 , 0 , $month , 10 ));
//echo $from_date;
$ZeroAllowed = " N " ;
error_log ( " key val before " . $ZeroAllowed );
$ZeroAllowedKey = getConfigKey ( " ZERO_QUANTITY_ALLOWED " );
error_log ( " key val " . $ZeroAllowedKey );
if ( $ZeroAllowedKey == " TRUE " ) {
$ZeroAllowed = " Y " ;
}
error_log ( " key val after " . $ZeroAllowed );
?>
< link href = " includes/css-js/admin.css " rel = " stylesheet " type = " text/css " />
< style >
@ page {
margin : 15 px ;
}
. btn {
background - color : #4CAF50;
border - radius : 5 % ;
/* Green */
border : none ;
color : white ;
padding : 5 px 8 px ;
text - align : center ;
text - decoration : none ;
display : inline - block ;
font - size : 12 px ;
margin : 4 px 2 px ;
cursor : pointer ;
}
@ media print {
#printPageButton {
display : none ;
}
}
</ style >
< body >
< ? php include ( 'pdf_ohc_header.php' ); ?>
< table width = " 100% " >
< tr >
< td align = " center " colspan = '2' style = " font-size: 15px " >< strong > Monthly Store Consumption Report </ strong >
</ td >
</ tr >
< tr >
< td align = " left " style = " font-size: 12px " >< strong > For Month :
2024-11-19 09:59:09 +05:30
< ? php echo $month_name ; ?> , <?php echo $year; ?>
2024-10-16 19:18:52 +05:30
</ strong ></ td >
< td align = " right " style = " font-size: 15px " >< button align = " center " id = " printPageButton "
class = " btn btn-success " onClick = " window.print(); " > Print </ button ></ td >
</ tr >
</ table >
< br >
< table width = " 100% " border = " 1 " cellspacing = " 0 " >
< tr >
< th width = " 2% " align = " center " >< strong > Sr </ th >
< th align = " center " width = " 5% " >< strong > Items </ th >
< th align = " center " width = " 5% " >< strong > Items Rate Per Unit </ th >
<!-- < th align = " center " width = " 5% " >< strong > Expiry date </ th > -->
< th align = " center " width = " 5% " >< strong > Previous Balance Qty </ th >
< th align = " center " width = " 5% " >< strong > Previous Balance Amount </ th >
< th width = " 5% " align = " center " >< strong > Procured Qty </ th >
< th width = " 5% " align = " center " >< strong > Procured Amount </ th >
< th align = " center " width = " 5% " >< strong > Total Qty </ th >
< th align = " center " width = " 5% " >< strong > Total Amount </ th >
< th align = " center " width = " 5% " >< strong > Consumption Qty </ th >
< th align = " center " width = " 5% " >< strong > Consumption Amount </ th >
< th align = " center " width = " 5% " >< strong > Expired Qty </ th >
< th align = " center " width = " 5% " >< strong > Expired Amount </ th >
< th align = " center " width = " 5% " >< strong > Balance Qty </ th >
< th align = " center " width = " 5% " >< strong > Balance Amount </ th >
</ strong >
</ tr >
< ?
//echo $to_date;
$prv_amt = 0 ;
$cur_amt = 0 ;
$tot_amt = 0 ;
$con_amt = 0 ;
$exp_amt = 0 ;
$bel_amt = 0 ;
// $emp_id=$_POST['empName'];
error_reporting ( E_ERROR | E_PARSE );
$count = 0 ;
//echo $emp_id;
$data = " " ;
$sql = " select cat_id from tbl_categories order by sequence asc " ;
error_log ( " SSSSSSS $ $ $ $ $ $ $ $ $ " . $sql );
$result = mysqli_query ( $conn , $sql );
$med_cat = array ();
function getExpiry ( $item_id )
{
$sql_expiry = " SELECT DISTINCT(expiry_date) as expiry,item_batch_no FROM item_stock WHERE item_id=' " . $item_id . " ' AND stock_qty>0 " ;
$result_expiry = mysqli_query ( $GLOBALS [ 'conn' ], $sql_expiry );
$expiry_with_batch = " " ;
while ( $row_expiry = mysqli_fetch_assoc ( $result_expiry )) {
$dateStrVal = strtotime ( $row_expiry [ 'expiry' ]);
if ( empty ( $dateStrVal )) {
$expired_date = 'NA' ;
} else {
$expired_date = date_format ( date_create ( $row_expiry [ 'expiry' ]), " M-Y " );
}
$expiry_with_batch .= $expired_date . " | " ;
}
return $expiry_with_batch ;
}
function expiry_details ( $item_id , $m , $y , $ohc )
{
$expired_item_sql = " select * from cleanup_item_stock where item_id = ' " . $item_id . " ' and month(cleanup_date) = ' $m ' and year(expiry_date) = ' $y ' " ;
$result_expired_item_sql = mysqli_query ( $GLOBALS [ 'conn' ], $expired_item_sql );
$expired_qty = " " ;
while ( $row_expired_item_sql = mysqli_fetch_assoc ( $result_expired_item_sql )) {
$expired_qty += $row_expired_item_sql [ 'cleanup_qty' ];
}
if ( $expired_qty == 0 ) {
return 0 ;
} else {
return $expired_qty ;
}
}
function previous_balance ( $item_id , $m , $y )
{
if ( $m == 3 ) {
$prev_month_number = $m - 1 ;
$prev_month = date ( " F " , mktime ( 0 , 0 , 0 , $prev_month_number , 10 ));
} else if ( $m == 2 ) {
$prev_month_number = $m - 1 ;
$prev_month = date ( " F " , mktime ( 0 , 0 , 0 , $prev_month_number , 10 ));
} else if ( $m == 1 ) {
$prev_month_number = 12 ;
$prev_month = date ( " F " , mktime ( 0 , 0 , 0 , $prev_month_number , 10 ));
} else {
$monthname = date ( " F " , mktime ( 0 , 0 , 0 , $m , 10 ));
$prev_month_number = $m - 1 ;
$prev_month = date ( " F " , mktime ( 0 , 0 , 0 , $prev_month_number , 10 ));
// $prev_month_number = date("m", strtotime($prev_month_number));
// $prev_month_number = date('m', strtotime($prev_month));
}
error_log ( " month name=> " . $monthname . " prev month name=> " . $prev_month . " prev month number=> " . $prev_month_number );
if ( $prev_month_number == '12' ) {
$Prev_year = $y - 1 ;
} else {
$Prev_year = $y ;
}
error_log ( " previous month: " . $prev_month . " " . $prev_month_number );
$Last_date = new DateTime ( $prev_month . " " . $y );
$date = $Last_date -> format ( 't' );
error_log ( " last date: " . $date );
$prev_balance_sql = " select stock_qty from item_stock_daily_balance where stock_qty>=0 and item_id=' " . $item_id . " ' and month(record_date) = ' $prev_month_number ' and year(record_date) = ' $Prev_year ' and day(record_date) = ' $date ' " ;
error_log ( '$prev_balance_sql:' . $prev_balance_sql );
$result_prev_balance = mysqli_query ( $GLOBALS [ 'conn' ], $prev_balance_sql );
$previous_balance = " " ;
while ( $row_prev_balance = mysqli_fetch_assoc ( $result_prev_balance )) {
$previous_balance += $row_prev_balance [ 'stock_qty' ];
}
if ( $previous_balance == 0 ) {
return 0 ;
} else {
return $previous_balance ;
}
}
function procurement_details ( $item_id , $m , $y , $ohc )
{
$procurement_qty_total = 0 ;
$sql_procurement = " select pt.qty from procurement_items pt right join procurement p on pt.procurement_id = p.procurement_id where pt.item_id = ' $item_id ' and month(p.procurement_date ) = ' $m ' and year(p.procurement_date )=' $y ' " ;
error_log ( " procurement: " . $sql_procurement );
$result_procurement = mysqli_query ( $GLOBALS [ 'conn' ], $sql_procurement );
while ( $row_procurement = mysqli_fetch_assoc ( $result_procurement )) {
$procurement_qty_total += $row_procurement [ 'qty' ];
}
$sql_direct_in = " select pt.received_qty from store_received_return_items pt right join store_received_return_master p on pt.received_id = p.received_id where pt.item_id = ' $item_id ' and month(p.received_date ) = ' $m ' and year(p.received_date )=' $y ' " ;
// error_log("procurement:" . $sql_procurement);
$result_direct_in = mysqli_query ( $GLOBALS [ 'conn' ], $sql_direct_in );
while ( $row_direct_in = mysqli_fetch_assoc ( $result_direct_in )) {
$procurement_qty_total += $row_direct_in [ 'received_qty' ];
}
return $procurement_qty_total ;
}
function total ( $prev_balance , $new_received )
{
$total = $prev_balance + $new_received ;
return $total ;
}
function consume_details ( $item_id , $m , $y , $ohc )
{
$sql_consume = " select st.issue_qty from stock_issue_items st left join stock_issue s on st.stock_issue_id = s.stock_issue_id where item_id = ' $item_id ' and month(s.issue_date ) = ' $m ' and year(s.issue_date )=' $y ' " ;
// error_log("issued_stock" . $sql_consume);
$result_consume = mysqli_query ( $GLOBALS [ 'conn' ], $sql_consume );
$issued_qty_total = 0 ;
while ( $row_consume = mysqli_fetch_array ( $result_consume )) {
$issued_qty_total += $row_consume [ 'issue_qty' ];
}
return $issued_qty_total ;
}
function cost_latest ( $item_id , $m , $y )
{
$sql_procurement = " select * from item_rate_change_history h left join item_rate r on h.item_id=r.item_id where h.id=(select max(id) from item_rate_change_history where item_id = ' $item_id ' and month(last_modified ) = ' $m ' and year(last_modified )=' $y ') " ;
// error_log("exp_cost:".$item_id . $sql_procurement);
$result_procurement = mysqli_query ( $GLOBALS [ 'conn' ], $sql_procurement );
$procurement_qty_total = 0 ;
while ( $row_procurement = mysqli_fetch_assoc ( $result_procurement )) {
$procurement_qty_total += ( $row_procurement [ 'new_rate' ] / $row_procurement [ 'unit' ]);
}
if ( $procurement_qty_total == 0 || $procurement_qty_total == '' || $procurement_qty_total == null ){
$sql_procurement_rate = " select * from item_rate where item_id = ' $item_id ' " ;
// error_log("exp_cost:".$item_id . $sql_procurement);
$result_procurement_rate = mysqli_query ( $GLOBALS [ 'conn' ], $sql_procurement_rate );
while ( $row_procurement_rate = mysqli_fetch_assoc ( $result_procurement_rate )) {
$procurement_qty_total += ( $row_procurement_rate [ 'item_rate' ] / $row_procurement_rate [ 'unit' ]);
}
}
return $procurement_qty_total ;
}
function cost_old ( $item_id , $m , $y )
{
$sql_procurement = " select * from item_rate_change_history h left join item_rate r on h.item_id=r.item_id where h.id=(select max(id) from item_rate_change_history where item_id = ' $item_id ' and month(last_modified ) = ' $m ' and year(last_modified )=' $y ') " ;
// error_log("exp_cost:".$item_id . $sql_procurement);
$result_procurement = mysqli_query ( $GLOBALS [ 'conn' ], $sql_procurement );
$procurement_qty_total = 0 ;
while ( $row_procurement = mysqli_fetch_assoc ( $result_procurement )) {
$procurement_qty_total += ( $row_procurement [ 'old_rate' ] / $row_procurement [ 'unit' ]);
}
if ( $procurement_qty_total == 0 || $procurement_qty_total == '' || $procurement_qty_total == null ){
$sql_procurement_rate = " select * from item_rate where item_id = ' $item_id ' " ;
// error_log("exp_cost:".$item_id . $sql_procurement);
$result_procurement_rate = mysqli_query ( $GLOBALS [ 'conn' ], $sql_procurement_rate );
while ( $row_procurement_rate = mysqli_fetch_assoc ( $result_procurement_rate )) {
$procurement_qty_total += ( $row_procurement_rate [ 'item_rate' ] / $row_procurement_rate [ 'unit' ]);
}
}
return $procurement_qty_total ;
}
function balance ( $total_balance , $total_consumed )
{
$b = $total_balance - $total_consumed ;
return $b ;
}
while ( $row_m = mysqli_fetch_array ( $result )) {
array_push ( $med_cat , $row_m [ 'cat_id' ]);
}
foreach ( $med_cat as $i => $value ) {
$newCat = true ;
$query = " select i.item_id, i.item_name, isd1.sum_total,isd1.expiry_date from tbl_items i left join (select isd.item_id,sum(isd.stock_qty) as sum_total,isd.expiry_date from item_stock isd group by item_id) isd1 on isd1.item_id=i.item_id where i.cat=' $value ' and i.status= '1' " ;
error_log ( " ###########QQQQQQQQ " . $query );
$result = mysqli_query ( $conn , $query );
$total = mysqli_num_rows ( $result );
if ( $total != 0 ) { ?>
<!-- < tr rowspan = " 2 " >
< th colspan = '8' >
< center >< ? = getTableFieldValue ( " tbl_categories " , " cat_name " , " cat_id " , $value ) ?> </center>
</ th >
</ tr >
< tr ></ tr > -->
< ?
while ( $row = mysqli_fetch_assoc ( $result )) {
$total_consumed = consume_details ( $row [ 'item_id' ], $month , $year , $ohc );
if ( $total_consumed == 0 && $ZeroAllowed == " N " ) {
} else {
?>
< ? php if ( $newCat ) {
$newCat = false ; ?>
< tr rowspan = " 2 " >
< th colspan = '8' >
< center >< ? = getTableFieldValue ( " tbl_categories " , " cat_name " , " cat_id " , $value ) ?> </center>
</ th >
</ tr >
< ? php } ?>
< tr >
< td align = " left " >< ? = ++ $count ?> </td>
< td align = " left " >< ? = $row [ 'item_name' ] ?> </td>
< td align = " left " >
< ? = number_format (( float ) cost_latest ( $row [ 'item_id' ], $month , $year ), 2 , '.' , '' ) ?>
</ td >
<!-- < td align = " left " >< ? = getExpiry ( $row [ 'item_id' ]) ?> </td> -->
< td align = " left " >< ? = previous_balance ( $row [ 'item_id' ], $month , $year ) ?> </td>
< td align = " left " >
< ? php
$prv_amt += number_format (( previous_balance ( $row [ 'item_id' ], $month , $year ) * ( float ) cost_old ( $row [ 'item_id' ], $month , $year )), 2 , '.' , '' ) ;
echo number_format (( previous_balance ( $row [ 'item_id' ], $month , $year ) * ( float ) cost_old ( $row [ 'item_id' ], $month , $year )), 2 , '.' , '' ) ; ?>
</ td >
< td align = " left " >< ? = procurement_details ( $row [ 'item_id' ], $month , $year , $ohc ) ?> </td>
< td align = " left " >
< ? php
$cur_amt += number_format (( procurement_details ( $row [ 'item_id' ], $month , $year , $ohc ) * ( float ) cost_latest ( $row [ 'item_id' ], $month , $year )), 2 , '.' , '' );
echo number_format (( procurement_details ( $row [ 'item_id' ], $month , $year , $ohc ) * ( float ) cost_latest ( $row [ 'item_id' ], $month , $year )), 2 , '.' , '' ); ?>
</ td >
< td align = " left " >
< ? = total ( previous_balance ( $row [ 'item_id' ], $month , $year ), procurement_details ( $row [ 'item_id' ], $month , $year , $ohc )) ?>
</ td >
< td align = " left " >
< ? php $total_amount = number_format (( float ) total ( number_format (( previous_balance ( $row [ 'item_id' ], $month , $year ) * ( float ) cost_old ( $row [ 'item_id' ], $month , $year )), 2 , '.' , '' ) , number_format (( procurement_details ( $row [ 'item_id' ], $month , $year , $ohc ) * ( float ) cost_latest ( $row [ 'item_id' ], $month , $year )), 2 , '.' , '' )), 2 , '.' , '' ) ;
$tot_amt += $total_amount ;
echo $total_amount ;
?>
</ td >
< td align = " left " >< ? = consume_details ( $row [ 'item_id' ], $month , $year , $ohc ) ?> </td>
< td align = " left " >< ? php $consume_qty = consume_details ( $row [ 'item_id' ], $month , $year , $ohc ) ;
$new_consume_qty = $consume_qty - previous_balance ( $row [ 'item_id' ], $month , $year );
if ( $new_consume_qty <= 0 ){
$consum_amount = number_format (( float ) number_format (( $consume_qty * ( float ) cost_old ( $row [ 'item_id' ], $month , $year )), 2 , '.' , '' ), 2 , '.' , '' );
$con_amt += $consum_amount ;
echo $consum_amount ;
} else {
$old_consum_price = number_format (( previous_balance ( $row [ 'item_id' ], $month , $year ) * ( float ) cost_old ( $row [ 'item_id' ], $month , $year )), 2 , '.' , '' );
$new_consume_price = number_format (( $new_consume_qty * ( float ) cost_old ( $row [ 'item_id' ], $month , $year )), 2 , '.' , '' );
$consum_amount = number_format (( float )( $new_consume_price + $old_consum_price ), 2 , '.' , '' );
$con_amt += $consum_amount ;
echo $consum_amount ;
}
?> </td>
< td align = " left " >< ? = expiry_details ( $row [ 'item_id' ], $month , $year , $ohc ) ?> </td>
< td align = " left " >
< ? php
$exp_amt += number_format (( float )( expiry_details ( $row [ 'item_id' ], $month , $year , $ohc ) * cost_latest ( $row [ 'item_id' ], $month , $year )), 2 , '.' , '' );
echo number_format (( float )( expiry_details ( $row [ 'item_id' ], $month , $year , $ohc ) * cost_latest ( $row [ 'item_id' ], $month , $year )), 2 , '.' , '' ); ?>
</ td >
< td align = " left " >
< ? = ( ceil ( balance ( total ( previous_balance ( $row [ 'item_id' ], $month , $year ), procurement_details ( $row [ 'item_id' ], $month , $year , $ohc )), consume_details ( $row [ 'item_id' ], $month , $year , $ohc ))) - expiry_details ( $row [ 'item_id' ], $month , $year , $ohc )); ?>
</ td >
< td align = " left " >
< ? php
$bel_amt += ( number_format (( float )( ceil ( balance ( $total_amount , $consum_amount ))), 2 , '.' , '' ) - number_format (( float )( expiry_details ( $row [ 'item_id' ], $month , $year , $ohc ) * cost_latest ( $row [ 'item_id' ], $month , $year )), 2 , '.' , '' ));
echo ( number_format (( float )( ceil ( balance ( $total_amount , $consum_amount ))), 2 , '.' , '' ) - number_format (( float )( expiry_details ( $row [ 'item_id' ], $month , $year , $ohc ) * cost_latest ( $row [ 'item_id' ], $month , $year )), 2 , '.' , '' )); ?>
</ td >
</ tr >
< ? php }
}
}
} ?>
< tr >
< td colspan = " 4 " >< b > Grand Total Amount </ b ></ td >
< td >< b >< ? = $prv_amt ?> </td>
< td ></ td >
< td >< b >< ? = $cur_amt ?> </td>
< td ></ td >
< td >< b >< ? = $tot_amt ?> </td>
< td ></ td >
< td >< b >< ? = $con_amt ?> </td>
< td ></ td >
< td >< b >< ? = $exp_amt ?> </td>
< td ></ td >
< td >< b >< ? = $bel_amt ?> </td>
</ tr >
</ table >
</ body >
< script >
$ ( document ) . ready ( function () {
window . print ();
});
</ script >