<?php
include("../../liblist.php");
$GLOBALS['connmy'] = ConnIntra();
$GLOBALS['conn'] = Connect();

$_SESSION['USERID'] = 21;
$usrID = $_SESSION['USERID'];

fn_setCalculoIntermedio();

$params = fn_getParametrosCalculo('prd')->fetch_assoc();
$dp = fn_getDiasProductivos();

$qbus = "SELECT * FROM tb_plan_calcfinal WHERE semana = DATE_FORMAT(NOW(), '%u')";
$rbus = $GLOBALS['connmy']->query($qbus);
if (mysqli_num_rows($rbus) > 0){
    $qdel = "DELETE FROM tb_plan_calcfinal WHERE semana = DATE_FORMAT(NOW(), '%u')";
    $GLOBALS['connmy']->query($qdel);
}

$datos = fn_getCalculoIntermedio(date("W"));

while ($fila = $datos->fetch_assoc()){

    $capa = fn_getCapacidadLinea($fila['unif'])->fetch_assoc();

    $planned = 0;
    $prim = fn_getOrdenesFabricacionItemLiberadas($fila['ItemCode']);
    if (sqlsrv_num_rows($prim) == 0){
        $planned = 0;
    } else {
        while($of = sqlsrv_fetch_array( $prim, SQLSRV_FETCH_ASSOC)){
            $planned += ($of['PlannedQty'] - $of['CmpltQty']);
        }
    }

    /*$buffer = 0;
    if(fn_getBuffer($fila['ItemCode']) != 0){
        $buffer = fn_getBuffer($fila['ItemCode']);
    } else {*/
        $buffer = fn_getBufferVentas2($fila['ItemCode']);
    //}

    $stklinea = fn_getStockItem($fila['ItemCode']);
    $stklinea += $planned;
    $diasItem = $stklinea /$buffer;
    $diasItem -= $params['mesesmin'];
    $diasItem *= 21;

    $meses_stock = $stklinea /$buffer;

//
        
        $segFactor=$params['segfactor'];
     
		//INICIO MODIFICACION UNIDADES A PRODUCIR x PURETA 26-10-2023
        $unidadesAProducir=0;
        $unidadesAProduci=0;
        //$stockMax=4.5;
        $stockMax = fn_getValorStockMax($fila['ItemCode']);
        $nivelStockGeneraOf=$stklinea/$buffer;
        echo 'segfactor : '.$segFactor;
        echo 'buffer : '.$buffer;
        echo 'mesesprod : '.$params['stocksinreq'];
        echo 'stklinea : '.$stklinea;
        echo 'stockMax : '.$stockMax;
        
        
        if($nivelStockGeneraOf <= $params['stocksinreq']){
            if( (($buffer * ($params['mesesprod'] + $segFactor)+ $stklinea)) < ($buffer * $stockMax)){
                $unidadesAProduci=$buffer * $params['mesesprod'];
                $unidadesAProducir=fn_getValorRedondeado($rows['ItemCode'],$unidadesAProduci);
            }else{
                $unidadesAProduci=($buffer * $stockMax) - $stklinea;
                $unidadesAProducir=fn_getValorRedondeado($rows['ItemCode'],$unidadesAProduci);
            }

        }

//

    //$unidadesAProducir = fn_getValorRedondeado($fila['ItemCode'], $fila['und_recomendada']);
    //$unidadesAProducir = fn_getValorRedondeado($fila['ItemCode'], $fila['und_recomendada']);

    $tmoItem = $unidadesAProducir / $capa['cap_linea'];

    $reqOF = fn_getOrdenesFabricacionItem($fila['ItemCode']);
    if (sqlsrv_num_rows($reqOF) > 0){
        $isOF = sqlsrv_fetch_array($reqOF, SQLSRV_FETCH_ASSOC);
        $status = '';
        if ($isOF['Status']=='P'){
            $status = 'Planificada';
        } elseif ($isOF['Status']=='R') {
            $status = 'Liberada';
        } elseif (fn_getValidaOrdenGenerada($fila['ItemCode'], $unidadesAProducir, $usrID)){
            $status = 'Emitida';
        } elseif (fn_getConsultaPiezasItem($fila['ItemCode'], $unidadesAProducir)){
            $status = 'Generar';
        } else {
            $status = 'Despiece Incompleto';
        }
    } else {
        if (fn_getValidaOrdenGenerada($fila['ItemCode'], $unidadesAProducir, $usrID)){
            $status = 'Emitida';
        } elseif (fn_getConsultaPiezasItem($fila['ItemCode'], $unidadesAProducir)){
            $status = 'Generar';
        } else {
            $status = 'Despiece Incompleto';
        }
    }
    $qry = "SELECT * FROM tb_plan_calcfinal WHERE ItemCode = '".$fila['ItemCode']."' and semana = DATE_FORMAT(NOW(), '%u')";
    $r1 = $GLOBALS['connmy']->query($qry);
    if (mysqli_num_rows($r1) > 0){
        $qry = "DELETE FROM tb_plan_calcfinal WHERE ItemCode = '".$fila['ItemCode']."' and semana = DATE_FORMAT(NOW(), '%u')";
        $GLOBALS['connmy']->query($qry);
    }

    $qry3 = "SELECT ItemCode FROM tb_plan_calcfinal WHERE linea_unif = ".$fila['unif']." AND semana = DATE_FORMAT(NOW(), '%u')";
    $r13 = $GLOBALS['connmy']->query($qry3);
    $correl = mysqli_num_rows($r13) + 1;

    $qrydias = "SELECT linea_unif, dia_proc, tmo_item FROM tb_plan_calcfinal WHERE semana = DATE_FORMAT(NOW(), '%u') ORDER BY orden DESC LIMIT 1";
    $resdias = $GLOBALS['connmy']->query($qrydias);
    $diasact = 0;
    if(mysqli_num_rows($resdias)!=0){
        $int1 = $resdias->fetch_assoc();
        if($int1['linea_unif'] != $fila['unif']){
            $diasact = 0;
        } else {
            $diasact = $int1['dia_proc'];
        }
        $diaproc = $diasact + ceil($int1['tmo_item']);
    } else {
        $diaproc = $diasact + ceil($tmoItem);
    }

    $qry = "INSERT INTO tb_plan_calcfinal (ItemCode, linea_unif, secuencia, OnHand, base_calc_mensual, meses_sobre_minimo, dias_sobre_minimo, meses_stk_minimo, capa_linea,
    		perdida_ingresos_semana, und_a_producir, estado, tmo_item, dia_proc, semana, fec_get) VALUES ('".$fila['ItemCode']."', ".$fila['unif'].", ".$correl.",
    		".$fila['stock'].",".$buffer.",".$meses_stock.",".$diasItem.",".$fila['meses_stk_minimo'].",".$capa['cap_linea'].",".$fila['perdida_ingresos'].",
    		".$fila['und_a_producir'].",'".$status."',".$tmoItem.",".$diaproc.", DATE_FORMAT(NOW(), '%u'), DATE_FORMAT(NOW(), '%Y-%m-%d'))";
    $GLOBALS['connmy']->query($qry);

}
?>