Skip to content
Snippets Groups Projects
Commit 00f98887 authored by Luciano Cassettai's avatar Luciano Cassettai
Browse files

Merge branch 'feature/#39_error_calculo_reserva' into 'develop'

Issue #39 - se mejora el proceso autorizar para que descuente stock

See merge request !54
parents 3875ad8d 146b0544
No related branches found
No related tags found
1 merge request!54Issue #39 - se mejora el proceso autorizar para que descuente stock
Pipeline #482 passed with warnings with stages
in 4 minutes and 52 seconds
......@@ -40,7 +40,7 @@ class ci_gestion_egreso extends jurumi_ci
{
if ($this->cn()->hay_datos_cargados()) {
$rec_cab = $this->cn()->get_egresos_cabecera();
if ($rec_cab['estado']== 'AU') {
if ($rec_cab['estado']== constantes::get('ESTADO_AUTORIZADO')) {
$rec_cab['numero'] = $rec_cab['numero_egreso'].'/'.$rec_cab['ejercicio_egreso'];
}
}
......@@ -177,13 +177,13 @@ class ci_gestion_egreso extends jurumi_ci
$rec_cab = $this->cn()->get_egresos_cabecera();
$this->cargar_datos_egresos($rec_cab);
if ($rec_cab['estado'] == 'AU' || $rec_cab['estado'] == 'AN') {
if ($rec_cab['estado'] == constantes::get('ESTADO_AUTORIZADO') || $rec_cab['estado'] == constantes::get('ESTADO_ANULADO')) {
$datos['recibo_numero'] = $rec_cab['numero_egreso'].'/'.$rec_cab['ejercicio_egreso'];
$datos['desc_estado'] = $rec_cab['desc_estado'];
$datos['estado'] = $rec_cab['estado'];
} else {
$datos['desc_estado'] = 'Borrador';
$datos['estado'] = 'BO';
$datos['estado'] = constantes::get('ESTADO_BORRADOR');
}
$datos['id_egreso'] = (!is_null($this->s__id_egreso['id_egreso'])) ? $this->s__id_egreso['id_egreso'] : null;
......@@ -236,7 +236,7 @@ class ci_gestion_egreso extends jurumi_ci
$this->controlador()->evento('cancelar')->set_imagen('iconos/salir.png','proyecto');
$this->controlador()->evento('cancelar')->mostrar();
if ($this->s__datos_egreso['datos_cabecera']['estado'] == 'BO' && $this->s__datos_egreso['datos_cabecera']['id_egreso'] > 0) {
if ($this->s__datos_egreso['datos_cabecera']['estado'] == constantes::get('ESTADO_BORRADOR') && $this->s__datos_egreso['datos_cabecera']['id_egreso'] > 0) {
$this->controlador()->evento('autorizar')->mostrar();
$this->controlador()->evento('anular')->mostrar();
$this->controlador()->evento('procesar')->mostrar();
......@@ -247,7 +247,7 @@ class ci_gestion_egreso extends jurumi_ci
$this->controlador()->evento('cancelar')->mostrar();
}
if ($this->s__datos_egreso['datos_cabecera']['estado'] == 'BO' && $this->s__datos_egreso['datos_cabecera']['id_egreso'] == 0) {
if ($this->s__datos_egreso['datos_cabecera']['estado'] == constantes::get('ESTADO_BORRADOR') && $this->s__datos_egreso['datos_cabecera']['id_egreso'] == 0) {
$this->controlador()->evento('autorizar')->ocultar();
$this->controlador()->evento('anular')->ocultar();
$this->controlador()->evento('procesar')->mostrar();
......@@ -333,7 +333,6 @@ class ci_gestion_egreso extends jurumi_ci
$unidad_gestion = toba::consulta_php('dao_consultas')->get_unidades_gestion(null, true);
$this->s__datos_egreso['datos_cabecera']['id_unidad_gestion'] = $unidad_gestion[0]['id_unidad_gestion'];
$this->cn()->set_egresos_cabecera($this->s__datos_egreso['datos_cabecera']);
if ($this->s__datos_egreso['datos_cabecera']['id_egreso'] > 0) {
$this->cn()->desafectar_egresos($this->s__id_egreso);
}
......@@ -352,19 +351,11 @@ class ci_gestion_egreso extends jurumi_ci
//Se graba en la tabla egresos_detalle
$id = $this->cn()->grabar_egresos_detalles($eg_det);
$eg_alma = [];
$eg_alma['id_stock_almacen'] = $bien_seleccionado['id_stock_almacen'];
$eg_alma['cantidad'] = $bien_seleccionado['cantidad_reservada'];
//Se graba en la tabla egresos_almacen
$eg_almacen = $this->cn()->grabar_egresos_alamacen($id, $eg_alma);
//Se actualiza el campo cantidad_disponible de la tabla stock_en_almacen
$disponible = $this->cn()->grabar_stock_alamacen($eg_almacen);
$bien_seleccionado['cantidad_disponible'] = $disponible;
$eg_almacen = $this->cn()->grabar_egresos_almacen($id, $eg_alma);
$this->cn()->sincronizar();
$this->s__datos_egreso['datos_cabecera']['desc_estado'] = 'Borrador';
......@@ -386,11 +377,19 @@ class ci_gestion_egreso extends jurumi_ci
public function evt__autorizar()
{
try {
if ($this->s__datos_egreso['datos_cabecera']['estado'] == 'BO' && $this->s__datos_egreso['datos_cabecera']['id_egreso'] > 0) {
if ($this->s__datos_egreso['datos_cabecera']['estado'] == constantes::get('ESTADO_BORRADOR') && $this->s__datos_egreso['datos_cabecera']['id_egreso'] > 0) {
$eg_detalles = $this->cn()->get_egresos_detalle($this->s__id_egreso);
foreach($eg_detalles as $eg_detalle){
$estado = constantes::get('ESTADO_AUTORIZADO');
$egreso_almacen = $this->cn()->get_egresos_almacen($eg_detalle);
//Se hace el descuento de la cantidad disponible en stock_en_almacen
$this->cn()->grabar_stock_almacen($egreso_almacen[0],false,$estado);
$this->cn()->sincronizar();
}
$egreso = $this->cn()->autorizar();
$this->s__datos_cabecera['recibo_numero'] = $egreso['numero_egreso']."/".$egreso['ejercicio_egreso'];
$this->s__datos_cabecera['desc_estado'] = 'Autorizado';
$this->s__datos_cabecera['estado'] = 'AU';
$this->s__datos_cabecera['estado'] = constantes::get('ESTADO_AUTORIZADO');
$this->pantalla()->agregar_notificacion('Se ha autorizado el egreso correctamente', 'info');
}
......@@ -402,7 +401,7 @@ class ci_gestion_egreso extends jurumi_ci
public function evt__anular()
{
try {
if ($this->s__datos_egreso['datos_cabecera']['estado'] == 'BO' && $this->s__datos_egreso['datos_cabecera']['id_egreso'] > 0) {
if ($this->s__datos_egreso['datos_cabecera']['estado'] == constantes::get('ESTADO_BORRADOR') && $this->s__datos_egreso['datos_cabecera']['id_egreso'] > 0) {
$this->cn()->anular($this->s__datos_egreso['datos_cabecera']['id_egreso']);
$this->s__datos_cabecera['desc_estado'] = 'Anulado';
......
......@@ -49,7 +49,7 @@ class cn_gestion_egreso extends jurumi_cn
return $this->dep('datos')->tabla('egresos_detalle')->nueva_fila($egreso_detalle);
}
public function grabar_egresos_alamacen($id, $eg_almacen)
public function grabar_egresos_almacen($id, $eg_almacen)
{
$this->dep('datos')->tabla('egresos_detalle')->set_cursor($id);
......@@ -60,18 +60,25 @@ class cn_gestion_egreso extends jurumi_cn
return $eg_almacen;
}
public function grabar_stock_alamacen($eg_almacen, $devolver = false)
public function get_egresos_detalle($id)
{
return $this->dep('datos')->tabla('egresos_detalle')->get_filas($id,null);
}
public function grabar_stock_almacen($eg_almacen, $devolver = false, $estado = null )
{
$sa['id_stock_almacen'] = $eg_almacen['id_stock_almacen'];
$this->dep('datos')->tabla('stock_en_almacen')->cargar($sa);
$stock_en_almacen = $this->dep('datos')->tabla('stock_en_almacen')->get_filas();
if ($devolver) {
if ($devolver && $estado == constantes::get('ESTADO_AUTORIZADO')) {
$disponible = $stock_en_almacen[0]['cantidad_disponible'] + $eg_almacen['cantidad'];
} else {
} else if ($estado == constantes::get('ESTADO_AUTORIZADO')) {
$disponible = $stock_en_almacen[0]['cantidad_disponible'] - $eg_almacen['cantidad'];
}else{
$disponible = $stock_en_almacen[0]['cantidad_disponible'];
}
$this->dep('datos')->tabla('stock_en_almacen')->set_fila_columna_valor($stock_en_almacen[0], 'cantidad_disponible', $disponible);
......@@ -88,7 +95,7 @@ class cn_gestion_egreso extends jurumi_cn
$egresos_almacen = $this->get_egresos_almacen($id_egreso);
foreach ($egresos_almacen as $eg_almacen) {
$this->grabar_stock_alamacen($eg_almacen, true);
$this->grabar_stock_almacen($eg_almacen, true);
}
$this->dep('datos')->tabla('egresos_almacen')->sincronizar();
......@@ -164,7 +171,7 @@ class cn_gestion_egreso extends jurumi_cn
$this->dep('datos')->tabla('egresos_cabecera')->set_columna_valor('numero_egreso', $egreso['numero_egreso'], false);
$this->dep('datos')->tabla('egresos_cabecera')->set_columna_valor('ejercicio_egreso', $egreso['ejercicio_egreso'], false);
$this->dep('datos')->tabla('egresos_cabecera')->set_columna_valor('estado', 'AU', false);
$this->dep('datos')->tabla('egresos_cabecera')->set_columna_valor('estado', constantes::get('ESTADO_AUTORIZADO'), false);
$this->dep('datos')->tabla('egresos_cabecera')->sincronizar();
return $egreso;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment