Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 64
0.00% covered (danger)
0.00%
0 / 10
CRAP
n/a
0 / 0
tablaid
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
kvTablaID
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
kvAccionID
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
kvRenglon
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
kvTabla
0.00% covered (danger)
0.00%
0 / 7
0.00% covered (danger)
0.00%
0 / 1
20
kvLogDefault
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
kvLogInsert
0.00% covered (danger)
0.00%
0 / 2
0.00% covered (danger)
0.00%
0 / 1
2
Logme
0.00% covered (danger)
0.00%
0 / 3
0.00% covered (danger)
0.00%
0 / 1
2
generaKvLog
0.00% covered (danger)
0.00%
0 / 18
0.00% covered (danger)
0.00%
0 / 1
42
haz_update_con_log
0.00% covered (danger)
0.00%
0 / 29
0.00% covered (danger)
0.00%
0 / 1
156
1<?php
2function tablaid($tabla)
3{
4    return ia_singleread("SELECT tabla_id FROM tablas WHERE tabla = ". strit($tabla));
5}
6
7function kvTablaID($tabla)
8{
9    return tablaid($tabla);
10}
11
12function kvAccionID($accion)
13{
14    return ia_singleread("SELECT kv_accion_log_id FROM kv_accion_log WHERE accion = ". strit($accion));
15}
16
17function kvRenglon($campo='',$valor='',$anterior='')
18{
19    return array('campo'=>$campo,'valor'=>$valor,'anterior'=>$anterior);
20}
21
22function kvTabla($arrCampos=array())
23{
24    $html = '';
25    if(!empty($arrCampos) && is_array($arrCampos))
26    {
27        $html = "<table style=\"width:100%;\"><thead><tr><th style=\"width:25%;\" class=\"lbl\">Campo</th><th style=\"width:40%;\" class=\"lbl\">Valor Nuevo</th><th style=\"width:35%;\" class=\"lbl\">Valor Anterior</th></tr><tr><td colspan=\"3\"><hr/></td></tr></thead><tbody>";
28        foreach($arrCampos as $campo)
29        {
30            $html.="<tr><td class=\"txt_bold_black\">$campo[campo]</td><td class=\"txt_bold_red\">$campo[valor]</td><td class=\"txt_bold_black\">$campo[anterior]</td></tr>";
31        }
32        $html .= "</tbody><tfoot><tr><td colspan=\"3\">&nbsp;</td></tr></tfoot></table>";
33    }
34
35    return $html;
36}
37
38function kvLogDefault()
39{
40    return array('kv_record_log' => null, 'collection_id' => '', 'record_id' => '', 'alta_db' => '', 'usuario' => '', 'kv_accion_log_id' => '', 'note' => '');
41}
42
43function kvLogInsert($arrCampos=array())
44{
45    $arrCampos['kv_record_log'] = null;
46    return ia_insert('kv_record_log', $arrCampos);
47}
48
49function Logme($tabla = '', $record_id = '', $usuario = '', $accion_id = '', $note = '')
50{
51    $collection = tablaid($tabla);
52    $logsql = "INSERT INTO kv_record_log (kv_record_log, collection_id, record_id, alta_db, usuario, kv_accion_log_id, note) VALUES (NULL, $collection, '$record_id', NULL, '$usuario', '$accion_id', '$note')";
53    return !ia_query($logsql,true,false);
54}
55
56function generaKvLog($arrPar = array('collection_id'=>'', 'record_id'=>'', 'accion'=>'alta', 'enDB'=>'', 'enND'=>''))
57{
58    $usuario = $_SESSION['usuario'];
59    $now = date('Y-m-d H:i:s');
60    /** Ultimo movimiento en deposita_en **/
61    $kv_log_arr = kvLogDefault();
62    $kv_log_arr['collection_id'] = kvTablaID($arrPar['collection_id']);
63    $kv_log_arr['record_id'] = $arrPar['record_id'];
64    $kv_log_arr['alta_db'] = $now;
65    $kv_log_arr['usuario'] = $usuario;
66    $kv_log_arr['kv_accion_log_id'] = kvAccionID($arrPar['accion']);
67
68    switch($arrPar['collection_id'])
69    {
70        case 'depositar_en':
71            $agrupa = $arrPar['enND']['dep_agrupa_por'] == 1 ? "EMPRESA" : ($arrPar['enND']['dep_agrupa_por'] == 2 ? "BANCO" : "CUENTA");
72            $monto = $arrPar['enND']['dep_amount_ini'] == 0 ? "Sin límite" :  "$ ".echonf($arrPar['enND']['dep_amount_ini'],true);
73
74            if($arrPar['enDB']['dep_amount_ini'] != $arrPar['enND']['dep_amount_ini'])
75                $monto .= ", <span class=\"txt_bold_blue\">era $ ".echonf($arrPar['enDB']['dep_amount_ini'],true)."</span>";
76
77            $fecha = $now;
78
79            $kv_log_arr['note'] = "<em>Último cambio por <span class=\"txt_bold_blue\">$usuario</span></em> <span class=\"rojo\">(<em>$arrPar[accion]</em>).</span> <span class=\"txt_bold_blue\">$agrupa:</span> <span class=\"rojo\"><em>".$arrPar['enDB']['dep_label']."</em>.</span> <span class=\"txt_bold_blue\">Fecha:</span> <span class=\"rojo\"><em>".get_date_spanish(strtotime($fecha), false, 'small_date', 'month_mini')."</em>.</span> <span class=\"txt_bold_blue\">Monto:</span> <span class=\"rojo\"><em>$monto</em>.</span>";
80            break;
81    }
82
83    ia_query(kvLogInsert($kv_log_arr));
84
85    generaCatalogos($arrPar['collection_id']);
86    /** ***********************************/
87}
88
89/**
90 * @param array $arr_ND Array con los datos nuevos.
91 * @param array $arr_en_DB Array con los datos en la DB.
92 * @param string $table tabla
93 * @param string $pk_field campo id
94 * @param string $id id del registro
95 * @param array $arr_diff Array con los datos distintos.
96 * @param bool $hacer_bitacora Genera o no la bitacora
97 * @return array $sql
98 */
99function haz_update_con_log(&$arr_ND = array(), &$arr_en_DB = array(), $table = '', $pk_field = '', $id = '', &$arr_diff = array(), $hacer_bitacora = true)
100{
101    $sql = array();
102    if(empty($arr_ND) || !is_array($arr_ND) || empty($table) || empty($pk_field) || empty($id) )
103        return $sql;
104
105    if(empty($arr_en_DB))
106    {
107        if(empty($table))
108            return $sql;
109
110        $arr_en_DB = ia_singleton("SELECT * FROM $table WHERE $pk_field=".strit($id));
111        if(empty($arr_en_DB))
112            return $sql;
113    }
114
115    $usuario = isset($_SESSION['usuario']) ? $_SESSION['usuario'] : 1;
116    $now = date('Y-m-d H:i:s');
117
118    ksort($arr_ND);
119    ksort($arr_en_DB);
120    //$arr_diff = array();
121    $arr_log = array();
122    compara2Arrays($arr_ND, $arr_en_DB, array(), true, $arr_diff, $arr_log, $table);
123
124//echo "<pre>".print_r($arr_diff, true)."</pre>";
125
126
127    $kv_log_arr = kvLogDefault();
128    $kv_log_arr['alta_db'] = $now;
129    $kv_log_arr['usuario'] = $usuario;
130
131    if (!empty($arr_diff)) {
132        $arr_diff['ultimo_cambio'] = $now;
133        $arr_diff['ultimo_cambio_por'] = $usuario;
134        $sql[] = ia_update($table, $arr_diff, " $pk_field=".strit($id));
135        $kv_log_arr['collection_id'] = kvTablaID($table);
136        $kv_log_arr['record_id'] = $id;
137        $kv_log_arr['kv_accion_log_id'] = kvAccionID('Editar');
138        $kv_log_arr['note'] = kvTabla($arr_log);
139
140        if($hacer_bitacora)
141            $sql[] = kvLogInsert($kv_log_arr);
142    }
143
144    return $sql;
145}