<?php
class carga_model {
    private $db;

    public function __construct() {
        $this->db = database::conexion();
    }

    public function set_base($archivo,$id_asignacion) {
        error_reporting(E_ALL & ~E_DEPRECATED & ~E_STRICT & ~E_NOTICE & ~E_WARNING);
        require_once("./model/phpExcel/PHPExcel.php");
        require_once("./model/gestion_model.php");
        date_default_timezone_set("America/Lima");
        $fecha_hoy = date("Y-m-d");

        $subidos = 0;


        $objReader = new PHPExcel_Reader_Excel2007();
        $objPHPExcel = $objReader->load($archivo);
        $objFecha = new PHPExcel_Shared_Date();
        $objPHPExcel->setActiveSheetIndex(0);

        $columnas = $objPHPExcel->setActiveSheetIndex(0)->getHighestColumn();
        $filas = $objPHPExcel->setActiveSheetIndex(0)->getHighestRow();

        $ok = 0;
        $errores = 0;

        $mensaje_error = 'ALERTA:';

        $series_array = array();


        

            for ($i=2;$i<=$filas;$i++){

                $_DATOS_EXCEL[$i]['sku'] = $objPHPExcel->getActiveSheet()->getCell('E'.$i)->getFormattedValue();
               
                $_DATOS_EXCEL[$i]['cantidad'] = $objPHPExcel->getActiveSheet()->getCell('F'.$i)->getFormattedValue();
                $_DATOS_EXCEL[$i]['serie'] = $objPHPExcel->getActiveSheet()->getCell('H'.$i)->getFormattedValue();
                $_DATOS_EXCEL[$i]['estado'] = $objPHPExcel->getActiveSheet()->getCell('I'.$i)->getFormattedValue();



                    if($_DATOS_EXCEL[$i]['sku'] != ''){
                        if($_DATOS_EXCEL[$i]['sku'] != ' '){
                            if($_DATOS_EXCEL[$i]['cantidad'] != ''){
                                if($_DATOS_EXCEL[$i]['cantidad'] != ' '){
                                    if($_DATOS_EXCEL[$i]['cantidad'] >= 0){

                                        $con1 = "select count(*) as total from producto_servicio where sku = '".$_DATOS_EXCEL[$i]['sku']."';";
                                        $stmt1 = sqlsrv_query($this->db, $con1);
                                        $tmp1 = sqlsrv_fetch_array($stmt1, SQLSRV_FETCH_ASSOC);

                                        /* echo'<script type="text/javascript">alert("CARGA MASIVA: '.$con1.'");</script>'; */

                                        if($tmp1['total'] > 0){

                                            

                                                $con0 = "select top 1 * from producto_servicio where sku = '".$_DATOS_EXCEL[$i]['sku']."';";
                                                $stmt0 = sqlsrv_query($this->db, $con0);
                                                $tmp0 = sqlsrv_fetch_array($stmt0, SQLSRV_FETCH_ASSOC);

                                                /* echo'<script type="text/javascript">alert("CARGA MASIVA: '.$con0.'");</script>'; */

                                                if($tmp0['id_catalogo_serializado'] == 2){

                                                    $con2 = "select count(*) as total from stock_almacen where id_producto = '".$tmp0['id_producto_servicio']."' and id_asignacion = '".$id_asignacion."';";
                                                    $stmt2 = sqlsrv_query($this->db, $con2);
                                                    $tmp2 = sqlsrv_fetch_array($stmt2, SQLSRV_FETCH_ASSOC);

                                                    /* echo'<script type="text/javascript">alert("CARGA MASIVA: '.$con2.'");</script>'; */

                                                    if($tmp2['total']>0){

                                                        $cons = "select * from stock_almacen where id_producto = '".$tmp0['id_producto_servicio']."' and id_asignacion = '".$id_asignacion."';";
                                                        $stmts = sqlsrv_query($this->db, $cons);
                                                        $tmps = sqlsrv_fetch_array($stmts, SQLSRV_FETCH_ASSOC);

                                                        /* echo'<script type="text/javascript">alert("CARGA MASIVA: '.$cons.'");</script>'; */

                                                        if($_DATOS_EXCEL[$i]['estado'] == 'DISPONIBLE'){

                                                            $cantidad_total = $tmps['disponible'] + $_DATOS_EXCEL[$i]['cantidad'];

                                                            $con3 = "update stock_almacen set disponible = '".$cantidad_total."' where id_producto = '".$tmp0['id_producto_servicio']."' and id_asignacion = '".$id_asignacion."';";
                                                            $stmt3 = sqlsrv_query($this->db, $con3);
                                                            $tmp3 = sqlsrv_fetch_array($stmt3, SQLSRV_FETCH_ASSOC);

                                                        }

                                                        if($_DATOS_EXCEL[$i]['estado'] == 'MALOGRADO' || $_DATOS_EXCEL[$i]['estado'] == 'AVERIADO'){

                                                            $cantidad_total = $tmps['malogrado'] + $_DATOS_EXCEL[$i]['cantidad'];

                                                            $con3 = "update stock_almacen set malogrado = '".$cantidad_total."' where id_producto = '".$tmp0['id_producto_servicio']."' and id_asignacion = '".$id_asignacion."';";
                                                            $stmt3 = sqlsrv_query($this->db, $con3);
                                                            $tmp3 = sqlsrv_fetch_array($stmt3, SQLSRV_FETCH_ASSOC);

                                                        }

                                                        if($_DATOS_EXCEL[$i]['estado'] == 'MERMA'){

                                                            $cantidad_total = $tmps['merma'] + $_DATOS_EXCEL[$i]['cantidad'];

                                                            $con3 = "update stock_almacen set merma = '".$cantidad_total."' where id_producto = '".$tmp0['id_producto_servicio']."' and id_asignacion = '".$id_asignacion."';";
                                                            $stmt3 = sqlsrv_query($this->db, $con3);
                                                            $tmp3 = sqlsrv_fetch_array($stmt3, SQLSRV_FETCH_ASSOC);

                                                        }

                                                        

                                                        /* echo'<script type="text/javascript">alert("CARGA MASIVA: '.$con3.'");</script>'; */

                                                    }else{

                                                        if($_DATOS_EXCEL[$i]['estado'] == 'DISPONIBLE'){

                                                            $con3 = "insert into stock_almacen (id_producto,disponible,id_asignacion,malogrado,merma,sin_estado,id_usuario_interactua) values ('".$tmp0['id_producto_servicio']."','".$_DATOS_EXCEL[$i]['cantidad']."','".$id_asignacion."',0,0,0,400);";
                                                            $stmt3 = sqlsrv_query($this->db, $con3);
                                                            $tmp3 = sqlsrv_fetch_array($stmt3, SQLSRV_FETCH_ASSOC);

                                                        }

                                                        if($_DATOS_EXCEL[$i]['estado'] == 'MALOGRADO' || $_DATOS_EXCEL[$i]['estado'] == 'AVERIADO'){

                                                            $con3 = "insert into stock_almacen (id_producto,malogrado,id_asignacion,malogrado,merma,sin_estado,id_usuario_interactua) values ('".$tmp0['id_producto_servicio']."','".$_DATOS_EXCEL[$i]['cantidad']."','".$id_asignacion."',0,0,0,400);";
                                                            $stmt3 = sqlsrv_query($this->db, $con3);
                                                            $tmp3 = sqlsrv_fetch_array($stmt3, SQLSRV_FETCH_ASSOC);

                                                        }

                                                        if($_DATOS_EXCEL[$i]['estado'] == 'MERMA'){

                                                            $con3 = "insert into stock_almacen (id_producto,merma,id_asignacion,malogrado,merma,sin_estado,id_usuario_interactua) values ('".$tmp0['id_producto_servicio']."','".$_DATOS_EXCEL[$i]['cantidad']."','".$id_asignacion."',0,0,0,400);";
                                                            $stmt3 = sqlsrv_query($this->db, $con3);
                                                            $tmp3 = sqlsrv_fetch_array($stmt3, SQLSRV_FETCH_ASSOC);

                                                        }

                                                        /* echo'<script type="text/javascript">alert("CARGA MASIVA: '.$con3.'");</script>'; */

                                                    }


                                                }else{

                                                    if($tmp0['id_catalogo_serializado'] == 1){

                                                        $con2 = "select count(*) as total from stock_almacen where id_producto = '".$tmp0['id_producto_servicio']."' and id_asignacion = '".$id_asignacion."';";
                                                        $stmt2 = sqlsrv_query($this->db, $con2);
                                                        $tmp2 = sqlsrv_fetch_array($stmt2, SQLSRV_FETCH_ASSOC);

                                                        /* echo'<script type="text/javascript">alert("CARGA MASIVA: '.$con2.'");</script>'; */


                                                        if($tmp2['total'] > 0){

                                                            $cons = "select * from stock_almacen where id_producto = '".$tmp0['id_producto_servicio']."' and id_asignacion = '".$id_asignacion."';";
                                                            $stmts = sqlsrv_query($this->db, $cons);
                                                            $tmps = sqlsrv_fetch_array($stmts, SQLSRV_FETCH_ASSOC);

                                                            /* echo'<script type="text/javascript">alert("CARGA MASIVA: '.$cons.'");</script>'; */

                                                            if($_DATOS_EXCEL[$i]['estado'] == 'DISPONIBLE'){
        
                                                                $cantidad_total = $tmps['disponible'] + $_DATOS_EXCEL[$i]['cantidad'];
            
                                                                $con3 = "update stock_almacen set disponible = '".$cantidad_total."' where id_producto = '".$tmp0['id_producto_servicio']."' and id_asignacion = '".$id_asignacion."';";
                                                                $stmt3 = sqlsrv_query($this->db, $con3);
                                                                $tmp3 = sqlsrv_fetch_array($stmt3, SQLSRV_FETCH_ASSOC);

                                                            }

                                                            if($_DATOS_EXCEL[$i]['estado'] == 'MALOGRADO' || $_DATOS_EXCEL[$i]['estado'] == 'AVERIADO'){
        
                                                                $cantidad_total = $tmps['malogrado'] + $_DATOS_EXCEL[$i]['cantidad'];
            
                                                                $con3 = "update stock_almacen set malogrado = '".$cantidad_total."' where id_producto = '".$tmp0['id_producto_servicio']."' and id_asignacion = '".$id_asignacion."';";
                                                                $stmt3 = sqlsrv_query($this->db, $con3);
                                                                $tmp3 = sqlsrv_fetch_array($stmt3, SQLSRV_FETCH_ASSOC);

                                                            }

                                                            if($_DATOS_EXCEL[$i]['estado'] == 'MERMA'){
        
                                                                $cantidad_total = $tmps['merma'] + $_DATOS_EXCEL[$i]['cantidad'];
            
                                                                $con3 = "update stock_almacen set merma = '".$cantidad_total."' where id_producto = '".$tmp0['id_producto_servicio']."' and id_asignacion = '".$id_asignacion."';";
                                                                $stmt3 = sqlsrv_query($this->db, $con3);
                                                                $tmp3 = sqlsrv_fetch_array($stmt3, SQLSRV_FETCH_ASSOC);

                                                            }

                                                            /* echo'<script type="text/javascript">alert("CARGA MASIVA: '.$con3.'");</script>'; */
        
                                                        }else{

                                                            if($_DATOS_EXCEL[$i]['estado'] == 'DISPONIBLE'){
        
                                                                $con3 = "insert into stock_almacen (id_producto,disponible,id_asignacion,malogrado,merma,sin_estado,id_usuario_interactua) values ('".$tmp0['id_producto_servicio']."','".$_DATOS_EXCEL[$i]['cantidad']."','".$id_asignacion."',0,0,0,400);";
                                                                $stmt3 = sqlsrv_query($this->db, $con3);
                                                                $tmp3 = sqlsrv_fetch_array($stmt3, SQLSRV_FETCH_ASSOC);

                                                            }

                                                            if($_DATOS_EXCEL[$i]['estado'] == 'MALOGRADO' || $_DATOS_EXCEL[$i]['estado'] == 'AVERIADO'){
        
                                                                $con3 = "insert into stock_almacen (id_producto,malogrado,id_asignacion,malogrado,merma,sin_estado,id_usuario_interactua) values ('".$tmp0['id_producto_servicio']."','".$_DATOS_EXCEL[$i]['cantidad']."','".$id_asignacion."',0,0,0,400);";
                                                                $stmt3 = sqlsrv_query($this->db, $con3);
                                                                $tmp3 = sqlsrv_fetch_array($stmt3, SQLSRV_FETCH_ASSOC);

                                                            }

                                                            if($_DATOS_EXCEL[$i]['estado'] == 'MERMA'){
        
                                                                $con3 = "insert into stock_almacen (id_producto,merma,id_asignacion,malogrado,merma,sin_estado,id_usuario_interactua) values ('".$tmp0['id_producto_servicio']."','".$_DATOS_EXCEL[$i]['cantidad']."','".$id_asignacion."',0,0,0,400);";
                                                                $stmt3 = sqlsrv_query($this->db, $con3);
                                                                $tmp3 = sqlsrv_fetch_array($stmt3, SQLSRV_FETCH_ASSOC);

                                                            }

                                                            /* echo'<script type="text/javascript">alert("CARGA MASIVA: '.$con3.'");</script>'; */
        
                                                        }
        
                                                        if($_DATOS_EXCEL[$i]['serie']!='' || $_DATOS_EXCEL[$i]['serie']!="" || $_DATOS_EXCEL[$i]['serie']!=null){
                                                            
                                                            if($_DATOS_EXCEL[$i]['estado'] == 'DISPONIBLE'){

                                                                $con4 = "insert into serie (id_producto,cantidad,serie,id_asignacion,id_usuario_interactua,estado_estado,id_usuario_interactua) values ('".$tmp0['id_producto_servicio']."',1,'".$_DATOS_EXCEL[$i]['serie']."','".$id_asignacion."','".$_SESSION['id_usuario_almacen']."',1,400);";
                                                                $stmt4 = sqlsrv_query($this->db, $con4);
                                                                $tmp4 = sqlsrv_fetch_array($stmt4, SQLSRV_FETCH_ASSOC);

                                                            }

                                                            if($_DATOS_EXCEL[$i]['estado'] == 'MALOGRADO' || $_DATOS_EXCEL[$i]['estado'] == 'AVERIADO'){

                                                                $con4 = "insert into serie (id_producto,cantidad,serie,id_asignacion,id_usuario_interactua,estado_estado,id_usuario_interactua) values ('".$tmp0['id_producto_servicio']."',1,'".$_DATOS_EXCEL[$i]['serie']."','".$id_asignacion."','".$_SESSION['id_usuario_almacen']."',2,400);";
                                                                $stmt4 = sqlsrv_query($this->db, $con4);
                                                                $tmp4 = sqlsrv_fetch_array($stmt4, SQLSRV_FETCH_ASSOC);

                                                            }

                                                            if($_DATOS_EXCEL[$i]['estado'] == 'MERMA'){

                                                                $con4 = "insert into serie (id_producto,cantidad,serie,id_asignacion,id_usuario_interactua,estado_estado,id_usuario_interactua) values ('".$tmp0['id_producto_servicio']."',1,'".$_DATOS_EXCEL[$i]['serie']."','".$id_asignacion."','".$_SESSION['id_usuario_almacen']."',3,400);";
                                                                $stmt4 = sqlsrv_query($this->db, $con4);
                                                                $tmp4 = sqlsrv_fetch_array($stmt4, SQLSRV_FETCH_ASSOC);

                                                            }

                                                            /* echo'<script type="text/javascript">alert("CARGA MASIVA: '.$con4.'");</script>'; */

                                                        }
                                                        

                                                    }

                                                }



                                        }

                                    }else{
                                        
                                        return $subidos;
                                    }
                                }else{
                                    
                                    return $subidos;
                                }
                            }else{
                                
                                return $subidos;
                            }
                        }else{
                            
                            return $subidos;
                        }
                    }else{
                        
                        return $subidos;
                    }

                $subidos++;

            }

            return $subidos;
        
    }

}
?>