@extends('layouts.reporte2') @section('php') @php $cliente = config('app.CLIENTE'); $display = 'block'; $display_ = 'none'; $tipoStock2 = json_encode(['1' => __('messages.catalogado'), '0' => __('messages.no-catalogado'), '2' => __('messages.no-informado'), '' => __('messages.todos')]); $pareto = json_encode(['100' => '100% de la Venta', '80' => '80% de la Venta']); $periodo = json_encode(['sem' => __('messages.semanas'), 'mes' => __('messages.meses')]); $display_grafico = ''; $display_tabla = ''; $arr_mdlzlatam = ['mdlzcolombia', 'mdlzcostarica', 'mdlzguatemala', 'mdlzhonduras', 'mdlznicaragua', 'mdlzperu', 'mdlzsalvador']; $instock_formula = asset('images/mdlzlatam/mdlzlatam_instock_formula.png'); $osa_formula = asset('images/mdlzlatam/mdlzlatam_osa_formula.png'); $osamotivo_tabla = asset('images/mdlzlatam/mdlzlatam_osamotivo_tabla.png'); $stocknegativo_formula = asset('images/mdlzlatam/mdlzlatam_stocknegativo_formula.png'); $bloqueocomercial_formula = asset('images/mdlzlatam/mdlzlatam_bloqueocomercial_formula.png'); $quiebrefillrate_formula = asset('images/mdlzlatam/mdlzlatam_quiebrefillrate_formula.png'); $articulosinpronostico_formula = asset('images/mdlzlatam/mdlzlatam_articulosinpronostico_formula.png'); $quiebreforecast_formula = asset('images/mdlzlatam/mdlzlatam_quiebreforecast_formula.png'); $stockbodega_formula = asset('images/mdlzlatam/mdlzlatam_stockbodega_formula.png'); $stockfantasma_formula = asset('images/mdlzlatam/mdlzlatam_stockfantasma_formula.png'); $vtaperdidau_formula = asset('images/mdlzlatam/vta_perdida_u_formula.png'); $vtaperdida_formula = asset('images/mdlzlatam/vta_perdida_formula.png'); $vtaperdidadisponible_formula = asset('images/mdlzlatam/vta_perdida_disponible_formula.png'); $dias_inv_instock = 'un día'; if(config('app.CLIENTE') == 'mdlzcolombia') $dias_inv_instock = '5 días'; $definiciones_mdlzlatam = "

Instock

Inicialmente, casos con Stock positivo y al menos $dias_inv_instock de inventario.

Responsive image

OSA

Disponibildiad del producto en los exhibidores. Casos que son Instock = 1 y la Venta en los últimos 30 días es positiva.

Responsive image

Motivos

Se identifica un motivo por cada combinación donde OSA = 0. Por defecto el listado es:

Responsive image

DISPONIBLE: Combinaciones productos en sala cuyo OSA = 1.


STOCK NEGATIVO: Indica que no hay disponibillidad del producto debido a que su stock es negativo.

Responsive image

BLOQUEO COMERCIAL: Según lo reportado por el B2B, el estado del producto en la sala es una combinación no válida. Se excluyen los casos reconocidos en los motivos anteriores.

Responsive image

QUIEBRE POR FILLRATE: A través de una base enviada por el cliente, se calcula el Fill Rate por producto. El umbral debe ser definido según cliente, por defecto se usa el 70%. Se excluyen los casos reconocidos en los motivos anteriores.

Responsive image

ARTICULO SIN PRONOSTICO: El instock es cero y el forecast es negativo o no definido. Se excluyen los casos reconocidos en los motivos anteriores.

Responsive image

QUIEBRE POR FORECAST: Combinaciones donde el Instock = 0, además, el B2B reporta forecast (en el archivo de inventario) y este es menor a la Venta en los últimos 7 días (Venta_7). Se excluyen los casos reconocidos en los motivos anteriores.

Responsive image

REVISAR PARAMETRO DE ABASTECIMIENTO: Son las combinaciones que no fueron identificadas en los casos anteriores.

STOCK EN BODEGA: Combinaciones con Instock = 1, su Venta en los últimos 30 días es cero y ha presentado variación de stock respecto al inventario anterior.

Responsive image

STOCK FANTASMA: Combinaciones con Instock = 1, su Venta en los últimos 30 días es cero y no ha presentado variación de stock respecto al inventario anterior.

Responsive image

NUEVO PRODUCTO: Si el producto se ha identificado con estado 'NUEVO'. Por defecto, mantenemos el estado 'NUEVO' hasta que el cliente indique su cambio de estado.


Venta Perdida

Considerando los últimos 30 días, se calcula un promedio de unidades vendidas y precio por producto en la sala.

Se determina la última fecha que tuvo venta.

Se obtiene la diferencia de días entre ayer y el último día de venta.

Depende si la diferencia de días es menor a 7 o caso contrario.

Responsive image

Luego, la Venta Perdida valorada es el Venta Perdida (U) multiplicado por el precio promedio en ese periodo.

Responsive image

La Venta Perdida es cero si el motivo es DISPONIBLE.

Responsive image
"; $instock_formula = asset('images/kunafoods/instock_formula.png'); $osa_formula = asset('images/kunafoods/osa_formula.png'); $osamotivo_tabla = asset('images/kunafoods/osamotivo_tabla.png'); $stocknegativo_formula = asset('images/kunafoods/stocknegativo_formula.png'); $stockcero_formula = asset('images/kunafoods/stockcero_formula.png'); $problemaabastecimiento_formula = asset('images/kunafoods/problemaabastecimiento_formula.png'); $stockinsuficiente_formula = asset('images/kunafoods/stockinsuficiente_formula.png'); $oportunidadpdv_formula = asset('images/kunafoods/oportunidadpdv_formula.png'); $stockdesajustado_formula = asset('images/kunafoods/stockdesajustado_formula.png'); $nuevoproducto_formula = asset('images/kunafoods/nuevoproducto_formula.png'); $arr_kunafoods = ['kunafoods']; $definiciones_kunafoods = "

Instock

Casos con Stock positivo y al menos 1 día de inventario o bien que tengan Stock y no hayan tenido venta en los últimos 30 días.

Responsive image

OSA

Disponibildiad del producto en los exhibidores. Casos que son Instock = 1 y la Venta 1 día sea mayor a la venta promedio (venta_30/30). También los productos en sala que no tengan historia (venta_periodo nulo, siendo el máximo periodo con venta)

Responsive image

Motivos

El listado de motivos con sus respectivos responsables es:

Responsive image

DISPONIBLE: Combinaciones productos en sala cuyo OSA = 1.


STOCK NEGATIVO: Indica que no hay disponibillidad del producto debido a que su stock es negativo. Independiente si ha tenido venta ayer o no.

Responsive image

STOCK CERO: El stock es cero y no ha vendido ayer.

Responsive image

PROBLEMA DE ABASTECIMIENTO: Los casos restantes para Instock = 0.

Responsive image

STOCK INSUFICIENTE: Vendió ayer, pero no cumplía con el stock para el día de inventario.

Responsive image

OPORTUNIDAD PDV: No vendió ayer y ni cumplía con el stock suficiente para el día de inventario. También abarca los casos donde ayer no vendió la venta promedio de los últimos 30 días.

Responsive image

STOCK DESAJUSTADO: Sin venta los últimos 7 y 30 días, y tiene venta periodo (el último mes donde ha vendido) no nulo.

Responsive image

NUEVO PRODUCTO: Si el producto se ha identificado con estado 'NUEVO', cuenta con stock y no ha vendido en los últimos 30 días.


"; $paretoDefault = '80'; if(in_array($cliente, ['mdlzchile', 'mdlzcolombia', 'mdlzcostarica', 'mdlzguatemala', 'mdlzhonduras', 'mdlznicaragua', 'mdlzsalvador'])){ $paretoDefault = '100'; } @endphp @endsection @if(count($selectores_grafico)>0) @section('grafico') @if(isset($selectores_grafico['grafmotivo'])) {{__('messages.selector-generico-texto-stock')}} {{__('messages.selector-generico-texto-pareto')}} @if(in_array($cliente, $arr_mdlzlatam)) @endif @if(in_array($cliente, $arr_kunafoods)) @endif @php $display_grafico = 'display: none;'; @endphp @endif @if(isset($selectores_grafico['grafevo'])) {{__('messages.selector-generico-texto-stock')}} {{__('messages.selector-generico-texto-pareto')}} {{__('messages.selector-generico-texto-periodo')}} {{__('messages.selector-semanas-meses-texto-desde')}} {{__('messages.selector-semanas-meses-texto-hasta')}} @if(in_array($cliente, $arr_mdlzlatam)) @endif @php $display_grafico = 'display: none;'; @endphp @endif @endsection @endif @if(count($selectores_tabla)>0) @section('tabla') @if(isset($selectores_tabla['motivo'])) {{__('messages.selector-generico-texto-stock')}} {{__('messages.selector-generico-texto-pareto')}} @if(in_array($cliente, $arr_mdlzlatam)) @endif @php $display_tabla = ' display: none;'; @endphp @endif @if(isset($selectores_tabla['evo'])) {{__('messages.selector-generico-texto-stock')}} {{__('messages.selector-generico-texto-pareto')}} {{__('messages.selector-generico-texto-periodo')}} {{__('messages.selector-semanas-meses-texto-desde')}} {{__('messages.selector-semanas-meses-texto-hasta')}} @if(in_array($cliente, $arr_mdlzlatam)) @endif @php $display_tabla = 'display: none;'; @endphp @endif @endsection @endif @section('right-bar')
@endsection @section('js_aft') @endsection