109 lines
4.0 KiB
PHP
Executable File
109 lines
4.0 KiB
PHP
Executable File
<?php
|
|
if (!function_exists('generate_po_number')) {
|
|
function generate_po_number($last_pono)
|
|
{
|
|
$currentYear = date("Y");
|
|
$shortenFinYear = get_shorten_financial_year();// Get it From - DateTime Helper refer it.
|
|
|
|
// if(here have to check fin year if there is a change means both are same means ){
|
|
// $counter = $counter + 1;
|
|
// }else{
|
|
// $counter = 1;
|
|
// }
|
|
|
|
$result = explode('/', $last_pono);
|
|
$requestedFinYear = $result[1];
|
|
$leftPad = "RIPL";
|
|
$digit = 5;
|
|
|
|
if($requestedFinYear == $shortenFinYear){
|
|
$number = ((int)$result[2])+1;
|
|
$PoNo = $leftPad . '/' . $shortenFinYear . '/' . str_pad($number, $digit, '0', STR_PAD_LEFT);
|
|
}else{
|
|
$counter = 1;
|
|
$PoNo = $leftPad . '/' . $shortenFinYear . '/' . str_pad($counter, $digit, '0', STR_PAD_LEFT);
|
|
}
|
|
return $PoNo;
|
|
}
|
|
}
|
|
|
|
if (!function_exists('generate_igr_number')) {
|
|
function generate_igr_number($last_igrno)
|
|
{
|
|
$shortenFinYear = get_shorten_financial_year();
|
|
|
|
if (preg_match('/^\w+\/\d+-\d+\/\d+$/', $last_igrno)) {
|
|
// echo $last_igrno;
|
|
$type = 1; // IGRNO/25-26/00001 // 2025 april onwards karthick asked to changed this type.
|
|
} elseif (preg_match('/^\w+-\d+$/', $last_igrno)) {
|
|
// echo $last_igrno;
|
|
$type = 2; // IGRNO-0001 // karthick asked to checked this type 2023- 2025 april
|
|
} else {
|
|
// echo $last_igrno;
|
|
$type = 3; // IGRNO00001 // very first time we followed this type
|
|
}
|
|
|
|
if ($type == 1) {
|
|
$result = explode('/', $last_igrno);
|
|
$requestedFinYear = $result[1];
|
|
$leftPad = "IGR";
|
|
$digit = 4;
|
|
|
|
if($requestedFinYear == $shortenFinYear){ // here i am comparing the shoren fin year
|
|
$number = ((int)$result[2])+1;
|
|
$IgrNo = $leftPad . '/' . $shortenFinYear . '/' . str_pad($number, $digit, '0', STR_PAD_LEFT);
|
|
}else{
|
|
// here not same means ressetted type 1 format
|
|
$counter = 1;
|
|
$IgrNo = $leftPad . '/' . $shortenFinYear . '/' . str_pad($counter, $digit, '0', STR_PAD_LEFT);
|
|
}
|
|
return $IgrNo;
|
|
}else{
|
|
// type 2 and type 3 is converted into type 1 format
|
|
$leftPad = "IGR";
|
|
$digit = 5;
|
|
$counter = 1;
|
|
$IgrNo = $leftPad . '/' . $shortenFinYear . '/' . str_pad($counter, $digit, '0', STR_PAD_LEFT);
|
|
return $IgrNo;
|
|
}
|
|
}
|
|
}
|
|
|
|
if (!function_exists('generate_non_igr_number')) {
|
|
function generate_non_igr_number($last_non_igr)
|
|
{
|
|
$shortenFinYear = get_shorten_financial_year();// Get it From
|
|
|
|
$result = explode('/', $last_non_igr);
|
|
$requestedFinYear = $result[1];
|
|
$leftPad = "NonIGR";
|
|
$digit = 3;
|
|
|
|
if($requestedFinYear == $shortenFinYear){
|
|
$number = ((int)$result[2])+1;
|
|
$NonIgrNo = $leftPad . '/' . $shortenFinYear . '/' . str_pad($number, $digit, '0', STR_PAD_LEFT);
|
|
}else{
|
|
$counter = 1;
|
|
$NonIgrNo = $leftPad . '/' . $shortenFinYear . '/' . str_pad($counter, $digit, '0', STR_PAD_LEFT);
|
|
}
|
|
return $NonIgrNo;
|
|
}
|
|
}
|
|
|
|
function generate_amendment_po_number($PoNo, $increment = 1) {
|
|
if (strpos($PoNo, '.') !== false) {
|
|
list($base, $decimal) = explode('.', $PoNo);
|
|
preg_match('/^0*(\d+)$/', $decimal, $matches);
|
|
$numeric_part = isset($matches[1]) ? $matches[1] : '';
|
|
$new_numeric_part = intval($numeric_part) + $increment;
|
|
|
|
// Determine the number of leading zeros based on the original numeric part length
|
|
$new_decimal_length = strlen($numeric_part) > 1 ? strlen($numeric_part) : 2;
|
|
$new_decimal = str_pad($new_numeric_part, $new_decimal_length, '0', STR_PAD_LEFT);
|
|
|
|
return $base . '.' . $new_decimal;
|
|
} else {
|
|
return $PoNo . '.01';
|
|
}
|
|
}
|
|
?>
|