Beispiel #1
0
    function index()
    {
        $this->rapyd->load('dataform');
        $lscst = site_url('compras/scst/autocomplete/control');
        $script = '
		function formato(row) {
			return row[0]+" "+row[1]+" "+row[3];
		}

		$(function() {
			$("#control").autocomplete("' . $lscst . '",{
				delay:10,
				//minChars:2,
				matchSubset:1,
				matchContains:1,
				cacheLength:10,
				formatItem:formato,
				width:450,
				autoFill:true
				}
			);
		});';
        $form = new DataForm($this->url . 'index/process');
        $form->title('Pasar precios a cajas');
        $form->script($script);
        $form->control = new inputField('Control de compra', 'control');
        $form->control->rule = 'required|callback_chcontrol';
        $form->control->size = 12;
        $form->control->maxlength = 10;
        $form->control->append('Dejar vacio para enviar un masivo');
        $form->submit("btnsubmit", "Pasar precios a caja");
        $form->build_form();
        $error = '';
        if ($form->on_success()) {
            $control = $form->control->newValue;
            $usr = $this->session->userdata('usuario');
            $join = '';
            if (strlen($control > 0)) {
                $join = 'JOIN `itscst` AS b ON a.codigo=b.codigo AND b.codigo=' . $this->db->escape($control);
            }
            $mSQL = "INSERT INTO `enviapos` (codigo,numero,precio1,fecha,hora,usuario)\n\t\t\t\t  SELECT a.codigo,'INVENTAR',a.precio1,CURDATE(),CURTIME(),'{$usr}' FROM `maes` AS a {$join}";
            $ban = $this->db->simple_query($mSQL);
            if (!$ban) {
                $error .= "Hubo problemas al pasar los precios, comuniquese con servicio técnico";
                memowrite($mSQL, 'ENVIACAJA');
            } else {
                logusu('ENVIACAJA', "Fue enviado una actualizacion de precios");
            }
        }
        $data['content'] = "<div class='alert'>{$error}</div>";
        $data['content'] .= $form->output;
        $data['title'] = '<h1>Env&iacute;o de precios para las cajas</h1>';
        $data["head"] = script('jquery.pack.js') . script('plugins/jquery.autocomplete.js') . style('jquery.autocomplete.css') . $this->rapyd->get_head();
        $this->load->view('view_ventanas', $data);
    }
Beispiel #2
0
 function ejecutar()
 {
     $error = false;
     $mfinal = $this->input->post('fecha');
     //echo $mfinal;
     //$mfinal='31/12/2009';
     if ($mfinal == false) {
         redirect('contabilidad/cierre');
     }
     $mfinal = date('Ymd', timestampFromInputDate($mfinal));
     $anio = substr($mfinal, 2, 2);
     $annio = substr($mfinal, 0, 4);
     $comprob = "ZIERRE{$anio}";
     $this->db->simple_query("DELETE FROM itcasi WHERE comprob='{$comprob}'");
     $this->db->simple_query("DELETE FROM casi   WHERE comprob='{$comprob}'");
     $mSQL = "INSERT INTO casi SET comprob='{$comprob}', fecha={$mfinal}, descrip='ASIENTO DE CIERRE DEL EJERCICIO', total = 0, debe=0, haber=0, estampa=NOW(),tipo='INDETERMIN',status='A',origen='MANUAL'";
     $centinela = $this->db->simple_query($mSQL);
     if ($centinela == false) {
         memowrite($mSQL, 'casi');
         $error = true;
     }
     $mSQL = "INSERT INTO itcasi (fecha,comprob,origen,cuenta,referen,concepto,debe,haber,ccosto,sucursal)\n\t\t    SELECT {$mfinal} fecha,\n\t\t    '{$comprob}' comp, 'MANUAL' origen,\n\t\t    cuenta, 'CIERRE " . $anio . "' referen,\n\t\t    'CIERRE DE CUENTAS DE RESULTADO EJERCICIO " . $anio . "' concepto,\n\t\t    SUM(haber) debe, SUM(debe) haber, 0 ccosto, 0 sucu\n\t\t    FROM itcasi WHERE cuenta>='4' AND fecha<={$mfinal} AND fecha>={$annio}0101\n\t\t    GROUP BY cuenta";
     $centinela = $this->db->simple_query($mSQL);
     if ($centinela == false) {
         memowrite($mSQL, 'itcasi');
         $error = true;
     }
     $mSQL = "INSERT INTO itcasi (fecha,comprob,origen,cuenta,referen,concepto,debe,haber,ccosto,sucursal)\n\t\tSELECT fecha, comprob, origen,\n\t\t    (SELECT resultado FROM cemp limit 1) AS cuenta,\n\t\t    referen,concepto,\n\t\t    IF(SUM(debe-haber)>0,0,SUM(haber-debe)) AS debe,\n\t\t    IF(SUM(debe-haber)>0,SUM(debe-haber),0) AS haber, 0 AS ccosto, 0 AS sucu\n\t\t    FROM itcasi WHERE comprob='{$comprob}' GROUP BY comprob ";
     $centinela = $this->db->simple_query($mSQL);
     if ($centinela == false) {
         memowrite($mSQL, 'itcasi');
         $error = true;
     }
     $centinela = $this->db->simple_query("DELETE FROM itcasi WHERE debe=haber AND comprob='{$comprob}'");
     if ($centinela == false) {
         memowrite($mSQL, 'itcasi');
         $error = true;
     }
     $centinela = $this->db->simple_query("UPDATE casi SET\n\t\t    debe =(SELECT SUM(debe)  FROM itcasi WHERE comprob='{$comprob}'),\n\t\t    haber=(SELECT SUM(haber) FROM itcasi WHERE comprob='{$comprob}')\n\t\t    WHERE comprob='{$comprob}'");
     if ($centinela == false) {
         memowrite($mSQL, 'itcasi');
         $error = true;
     }
     if ($error) {
         echo 'Hubo algunos errores, se generaron centinelas, favor comunicarse con servicio tecnico';
     } else {
         echo "Cierre realizado {$comprob}";
         logusu('cierre', "Realizo cierre contable {$comprob}");
     }
 }
Beispiel #3
0
 function import($arch)
 {
     if (file_exists($arch)) {
         $file = fopen($arch, "r");
         while (!feof($file)) {
             $mSQL = fgets($file);
             if (strlen($mSQL) > 0) {
                 $rt = $this->ci->db->simple_query($mSQL);
                 if ($rt === FALSE) {
                     memowrite($mSQL, 'sqlinex');
                 }
             }
         }
         fclose($file);
     } else {
         show_error('Archivo no existe ' . $arch);
     }
 }
Beispiel #4
0
 static function genehotel($mes)
 {
     $CI =& get_instance();
     $udia = days_in_month(substr($mes, 4), substr($mes, 0, 4));
     $fdesde = $mes . '01';
     $fhasta = $mes . $udia;
     // BORRA LA GENERADA ANTERIOR
     $CI->db->simple_query("DELETE FROM siva WHERE EXTRACT(YEAR_MONTH FROM fechal) = {$mes} AND fuente='FH' ");
     // ARREGLA LAS TASAS NULAS EN SFAC
     $CI->db->simple_query("UPDATE hfac SET tasa=0, montasa=0, reducida=0, monredu=0, sobretasa=0, monadic=0, exento=0 WHERE (tasa IS NULL OR montasa IS NULL) AND EXTRACT(YEAR_MONTH FROM fecha)={$mes} ");
     $mSQL = "INSERT INTO siva\n\t\t\t(id, libro, tipo, fuente, sucursal, fecha, numero, numhasta,  caja, nfiscal,  nhfiscal,\n\t\t\treferen, planilla, clipro, nombre, contribu, rif, registro,\n\t\t\tnacional, exento, general, geneimpu,\n\t\t\tadicional, adicimpu,  reducida,  reduimpu, stotal, impuesto,\n\t\t\tgtotal, reiva, fechal, fafecta)\n\t\t\tSELECT 0 AS id,\n\t\t\t'V' AS libro,\n\t\t\tIF(a.tipo='D','NC',IF(a.tipo='F','FC',CONCAT('F',a.tipo))) AS tipo,\n\t\t\t'FH' AS fuente,\n\t\t\t'00' AS sucursal,\n\t\t\ta.fecha_ou,\n\t\t\ta.num_fac,\n\t\t\t' ' AS numhasta,\n\t\t\t' ' AS caja,\n\t\t\t' ' AS nfiscal,\n\t\t\t'  ' AS nhfiscal,\n\t\t\tIF(a.tipo='E',a.num_fac,a.num_fac ) AS referen,\n\t\t\t'  ' AS planilla,\n\t\t\ta.cod_cli AS clipro,\n\t\t\tIF(a.tipo='X','DOCUMENTO ANULADO.......',if(c.nombre='',a.nombre,c.nombre)),\n\t\t\tIF(c.tiva='C','CO','NO') AS contribu,\n\t\t\tIF(c.rifci='', a.cedula, c.rifci ),\n\t\t\t'01' AS registro,\n\t\t\t'S' AS nacional,\n\t\t\t0   AS exento,\n\t\t\ta.total*(a.tipo<>'X') AS general,\n\t\t\ta.iva*(a.tipo<>'X') AS geneimpu,\n\t\t\t0 AS adicional,\n\t\t\t0 AS adicimpu,\n\t\t\t0 AS reducida,\n\t\t\t0 AS reduimpu,\n\t\t\ta.total*(a.tipo<>'X') AS stotal,\n\t\t\ta.iva*(a.tipo<>'X')    AS impuesto,\n\t\t\ta.totalg*(a.tipo<>'X') AS gtotal,\n\t\t\t0 AS reiva,\n\t\t\t" . $mes . "01 AS fechal,\n\t\t\t0 AS fafecta\n\t\t\tFROM hfac AS a\n\t\t\tLEFT JOIN scli AS c ON a.cod_cli=c.cliente\n\t\t\tWHERE a.fecha_ou BETWEEN {$fdesde} AND {$fhasta} AND a.tipo NOT IN ('P','T')";
     $flag = $CI->db->simple_query($mSQL);
     if (!$flag) {
         memowrite($mSQL, 'genehotel');
     }
     //CARGA LAS RETENCIONES DE IVA DE CONTADO
     $mSQL = "SELECT * FROM sfpa WHERE tipo='RI' AND\tf_factura BETWEEN {$fdesde} AND {$fhasta} AND tipo_doc='FE' ";
     $query = $CI->db->query($mSQL);
     if ($query->num_rows() > 0) {
         foreach ($query->result() as $row) {
             $mSQL = "UPDATE siva SET reiva=" . $row->monto . ", comprobante='20" . $row->num_ref . "' WHERE tipo='" . $row->tipo_doc . "' AND numero='" . $row->numero . "' AND libro='V' AND fechal BETWEEN {$fdesde} AND {$fhasta} ";
             $flag = $CI->db->simple_query($mSQL);
             if (!$flag) {
                 memowrite($mSQL, 'genehotel');
             }
         }
     }
     //CARGA LAS RETENCIONES DE IVA DESDE SMOV
     $mSQL = "SELECT a.tipo_doc, a.fecha, a.numero, c.nombre, c.rifci, a.cod_cli, b.monto,\n\t\t\t\ta.numero AS afecta, a.fecha AS fafecta, a.reteiva, a.transac, a.nroriva, a.emiriva, a.recriva\n\t\t\tFROM itccli AS a JOIN smov AS b ON a.transac=b.transac\n\t\t\t\tLEFT JOIN scli AS c ON a.cod_cli=c.cliente\n\t\t\tWHERE b.fecha BETWEEN {$fdesde} AND {$fhasta} AND b.cod_cli='REIVA'\n\t\t\t\tAND a.reteiva>0 AND b.monto>b.abonos ";
     $query = $CI->db->query($mSQL);
     if ($query->num_rows() > 0) {
         foreach ($query->result() as $row) {
             $mSQL = "UPDATE siva SET reiva=" . $row->reteiva . ", comprobante='" . $row->nroriva . "', fecharece='{$row->recriva}'  WHERE tipo='" . $row->tipo_doc . "' AND numero='" . $row->numero . "' AND libro='V' AND fechal BETWEEN {$fdesde} AND {$fhasta} ";
             $flag = $CI->db->simple_query($mSQL);
             if (!$flag) {
                 memowrite($mSQL, 'genehotel');
             }
         }
     }
 }
Beispiel #5
0
 function ejecutar()
 {
     $error = FALSE;
     $mfinal = $this->input->post('fecha');
     //echo $mfinal;
     //$mfinal='31/12/2009';
     if ($mfinal == FALSE) {
         redirect('contabilidad/cierre');
     }
     $mfinal = date("Ymd", timestampFromInputDate($mfinal));
     $ano = substr($mfinal, 2, 2);
     $comprob = "ZIERRE{$ano}";
     $this->db->simple_query("DELETE FROM itcasi WHERE comprob='{$comprob}'");
     $this->db->simple_query("DELETE FROM casi   WHERE comprob='{$comprob}'");
     $mSQL = "INSERT INTO casi SET comprob='{$comprob}', fecha={$mfinal}, descrip='ASIENTO DE CIERRE DEL EJERCICIO', total = 0, debe=0, haber=0, estampa=now(),tipo='INDETERMIN',status='A',origen='MANUAL'";
     $centinela = $this->db->simple_query($mSQL);
     if ($centinela == FALSE) {
         memowrite($mSQL, 'casi');
         $error = TRUE;
     }
     $mSQL = "INSERT INTO itcasi \n\t\t    SELECT {$mfinal} fecha, \n\t\t    '{$comprob}' comp, 'MANUAL' origen,\n\t\t    cuenta, 'CIERRE " . substr($mfinal, 0, 2) . "' referen, \n\t\t    'CIERRE DE CUENTAS DE RESULTADO EJERCICIO " . substr($mfinal, 0, 2) . "' concepto,\n\t\t    sum(haber) debe, sum(debe) haber, 0 ccosto, 0 sucu, null AS id\n\t\t    FROM itcasi WHERE cuenta>='4' AND fecha<={$mfinal} \n\t\t    GROUP BY cuenta ";
     $centinela = $this->db->simple_query($mSQL);
     if ($centinela == FALSE) {
         memowrite($mSQL, 'itcasi');
         $error = TRUE;
     }
     $mSQL = "INSERT INTO itcasi \n\t\t SELECT fecha, comprob, origen, \n\t\t    (SELECT resultado FROM cemp limit 1) cuenta, \n\t\t    referen, \n\t\t    concepto, \n\t\t    if(sum(debe-haber)>0,0,sum(haber-debe)) debe, \n\t\t    if(sum(debe-haber)>0,sum(debe-haber),0) haber, 0 ccosto, 0 sucu, null AS id\n\t\t    FROM itcasi WHERE comprob='{$comprob}' group by comprob ";
     $centinela = $this->db->simple_query($mSQL);
     if ($centinela == FALSE) {
         memowrite($mSQL, 'itcasi');
         $error = TRUE;
     }
     $this->db->simple_query("DELETE FROM itcasi WHERE debe=haber AND comprob='{$comprob}'");
     if ($error) {
         echo "Hubo algunos errores, favor comunicarse con servicio tecnico";
     } else {
         echo "Cierre realizado {$comprob}";
     }
 }
Beispiel #6
0
 $mSQL = "\n\tSELECT SUM(asignacion+aumento-disminucion+traslados-" . substr($lista[$cfecha], 1) . ") disponible,IF(modo='AUMENTO' OR modo='DISMINUCION',faudis,IF(modo='Traslado',ftrasla,IF(modo='Asignacion','',{$cfecha}))) fmostrar,SUM(asignacion+aumento-disminucion+traslados) modificado,fecha,des,observa,cod_prov,numero,status,modo,codigoadm,fondo,codigopres,ordinal,faudis,ftrasla,fcomprome,fcausado,fopago,fpagado,frendi,SUM(comprometido)comprometido,SUM(causado)causado,SUM(opago)opago,SUM(pagado)pagado,SUM(aumento)aumento,SUM(disminucion)disminucion,SUM(traslados)traslados,SUM(asignacion)asignacion,denopart,denoadm,denofondo,nombre,SUM(ccomprometido)ccomprometido,SUM(ccausado)ccausao,SUM(copago)copago,SUM(cpagado)cpagado FROM (\n\tSELECT * FROM view_pres WHERE asignacion >0 ";
 $mSQL2 = $this->rapyd->db->_compile_select();
 $pos = strripos($mSQL2, "WHERE");
 if ($pos > 0) {
     $where = substr($mSQL2, $pos + 5);
     $mSQL2 .= " AND (ftrasla<= {$fechah} OR faudis <= {$fechah} OR frendi <= {$fechah} OR ";
     $mSQL .= " AND " . $where;
 } else {
     $mSQL2 .= " WHERE (ftrasla<= {$fechah} OR faudis <= {$fechah} OR frendi <= {$fechah} OR ";
 }
 $mSQL2 .= " {$cfecha} <= {$fechah} )";
 $mSQL .= " UNION ALL ";
 $mSQL .= $mSQL2;
 $mSQL .= " \n\t)reporte\n\tGROUP BY " . ($agruparv ? ' codigoadm,fondo,codigopres,ordinal' : "modo,numero,codigoadm,fondo,codigopres,ordinal") . "\n\tORDER BY codigoadm,fondo,codigopres,ordinal,fecha,modo='asignacion' \n\t";
 //echo "-->".$agruparv."<--";
 memowrite($mSQL, 'MOVI');
 $pdf = new PDFReporte($mSQL, 'L', $tpagina);
 $pdf->setHeadValores('TITULO1');
 $pdf->setSubHeadValores('TITULO2', 'TITULO3');
 $pdf->setTitulo($titulo);
 $pdf->setSubTitulo($subtitu);
 $pdf->AddPage();
 $pdf->setTableTitu(9, 'Times');
 if (!$agrupara) {
     $pdf->AddCol('codigoadm', 25, 'Est. Administrativa', 'L', 8);
 }
 if (!$agruparf) {
     $pdf->AddCol('fondo', 20, 'Fondo', 'L', 8);
 }
 if (!$agruparp) {
     $pdf->AddCol('codigopres', 25, 'Partida', 'L', 8);
Beispiel #7
0
 function _post_insert($do)
 {
     $primary = implode(',', $do->pk);
     $tipop = $do->get('tipop');
     $codban = $do->get('codban');
     $monto = $do->get('monto');
     $fecha = $do->get('fecha');
     $negreso = $do->get('negreso');
     $tipo = $do->get('tipo');
     $docum = $do->get('docum');
     $numero = $do->get('numero');
     $dbcodban = $this->db->escape($codban);
     $dbdocum = $this->db->escape($docum);
     //GUARDA PRESTAMO OTORGADO
     if ($tipop == '1') {
         // Crea bmov egreso
         $this->datasis->actusal($codban, $fecha, -1 * $monto);
         $mREG = $this->datasis->damereg("SELECT numcuent, banco, saldo, tbanco FROM banc WHERE codbanc={$dbcodban}");
         $mCUENTA = $mREG['numcuent'];
         $mBANCO = $mREG['banco'];
         $mSALDO = $mREG['saldo'];
         $mTBANCO = $mREG['tbanco'];
         if ($mTBANCO == 'CAJ') {
             $tipo = 'ND';
         }
         $data = array();
         $data['codbanc'] = $codban;
         $data['numcuent'] = $mCUENTA;
         $data['banco'] = $mBANCO;
         $data['saldo'] = $mSALDO;
         $data['fecha'] = $fecha;
         $data['tipo_op'] = $tipo;
         $data['numero'] = $do->get('numche');
         $data['concepto'] = 'PRESTAMO OTORGADO ' . $do->get('numero');
         $data['clipro'] = 'C';
         $data['concep2'] = $do->get('observa1');
         $data['concep3'] = $do->get('observa2');
         $data['monto'] = $monto;
         $data['codcp'] = $do->get('clipro');
         $data['nombre'] = $do->get('nombre');
         $data['benefi'] = $do->get('benefi');
         //$data['comprob']= $COMPROB;
         $data['negreso'] = $do->get('negreso');
         $data['posdata'] = $fecha;
         $data['liable'] = 'S';
         $data['usuario'] = $do->get('usuario');
         $data['transac'] = $do->get('transac');
         $data['estampa'] = $do->get('estampa');
         $data['hora'] = $do->get('hora');
         $mSQL = $this->db->insert_string('bmov', $data);
         $ban = $this->db->simple_query($mSQL);
         if ($ban == false) {
             memowrite($mSQL, 'bmov');
         }
         // Crea smov el pasivo
         //$mNUMERO   = $this->datasis->fprox_numero('ndcli');
         $cana = 1;
         $mNUMERO = 'P' . str_pad(substr($do->get('numero'), -1 * ($this->datasis->long - 1)), $this->datasis->long - 1, '0', STR_PAD_LEFT);
         while ($cana > 0) {
             $dbmNUMERO = $this->db->escape($mNUMERO);
             $mSQL = "SELECT COUNT(*) AS cana FROM smov WHERE tipo_doc='ND' AND numero={$dbmNUMERO}";
             $cana = intval($this->datasis->dameval($mSQL));
             if ($cana == 0) {
                 break;
             }
             $mNUMERO = $this->datasis->fprox_numero('ndprmo');
             $mNUMERO = 'P' . substr($mNUMERO, 1);
         }
         $data = array();
         $data['cod_cli'] = $do->get('clipro');
         $data['nombre'] = $do->get('nombre');
         $data['tipo_doc'] = 'ND';
         $data['numero'] = $mNUMERO;
         $data['fecha'] = $fecha;
         $data['monto'] = $do->get('monto');
         $data['impuesto'] = 0;
         $data['vence'] = $do->get('vence');
         $data['tipo_ref'] = 'PR';
         $data['num_ref'] = $do->get('numero');
         $data['observa1'] = $do->get('observa1');
         $data['observa2'] = $do->get('observa2');
         $data['banco'] = $do->get('codban');
         $data['fecha_op'] = $do->get('fecha');
         $data['num_op'] = $do->get('numche');
         $data['tipo_op'] = $do->get('tipo');
         $data['usuario'] = $do->get('usuario');
         $data['transac'] = $do->get('transac');
         $data['estampa'] = $do->get('estampa');
         $data['hora'] = $do->get('hora');
         $mSQL = $this->db->insert_string('smov', $data);
         $ban = $this->db->simple_query($mSQL);
         if ($ban == false) {
             memowrite($mSQL, 'smov');
         }
         //GUARDA PRESTAMO RECIBIDO
     } elseif ($tipop == '2') {
         $COMPROB = $do->get('comprob');
         // Crea bmov ingreso
         $this->datasis->actusal($codban, $fecha, $monto);
         $mREG = $this->datasis->damereg("SELECT numcuent, banco, saldo, tbanco FROM banc WHERE codbanc={$dbcodban}");
         $mCUENTA = $mREG['numcuent'];
         $mBANCO = $mREG['banco'];
         $mSALDO = $mREG['saldo'];
         $mTBANCO = $mREG['tbanco'];
         if ($mTBANCO == 'CAJ') {
             $tipo = 'NC';
         }
         $data = array();
         $data['codbanc'] = $codban;
         $data['numcuent'] = $mCUENTA;
         $data['banco'] = $mBANCO;
         $data['saldo'] = $mSALDO;
         $data['fecha'] = $fecha;
         $data['tipo_op'] = $tipo;
         $data['numero'] = $do->get('numche');
         $data['concepto'] = 'PRESTAMO RECIBIDO ' . $do->get('numero');
         $data['clipro'] = 'P';
         $data['concep2'] = $do->get('observa1');
         $data['concep3'] = $do->get('observa2');
         $data['monto'] = $monto;
         $data['codcp'] = $do->get('clipro');
         $data['nombre'] = $do->get('nombre');
         $data['benefi'] = $do->get('benefi');
         $data['comprob'] = $COMPROB;
         $data['negreso'] = $do->get('ningreso');
         $data['posdata'] = $fecha;
         $data['usuario'] = $do->get('usuario');
         $data['transac'] = $do->get('transac');
         $data['estampa'] = $do->get('estampa');
         $data['hora'] = $do->get('hora');
         $mSQL = $this->db->insert_string('bmov', $data);
         $ban = $this->db->simple_query($mSQL);
         if ($ban == false) {
             memowrite($mSQL, 'bmov');
         }
         // Crea sprm CxP
         $cana = 1;
         while ($cana > 0) {
             $mNUMERO = $this->datasis->fprox_numero('num_nd');
             $mSQL = "SELECT COUNT(*) AS cana FROM sprm WHERE tipo_doc='ND' AND numero='" . $mNUMERO . "' ";
             $cana = intval($this->datasis->dameval($mSQL));
         }
         $data = array();
         $data['cod_prv'] = $do->get('clipro');
         $data['nombre'] = $do->get('nombre');
         $data['tipo_doc'] = 'ND';
         $data['numero'] = $mNUMERO;
         $data['fecha'] = $fecha;
         $data['monto'] = $do->get('monto');
         $data['impuesto'] = 0;
         $data['vence'] = $do->get('vence');
         $data['tipo_ref'] = 'PR';
         $data['num_ref'] = $do->get('numero');
         $data['observa1'] = $do->get('observa1');
         $data['observa2'] = $do->get('observa2');
         $data['banco'] = $do->get('codban');
         $data['numche'] = $do->get('numche');
         $data['tipo_op'] = $do->get('tipo');
         $data['benefi'] = $do->get('benefi');
         $data['usuario'] = $do->get('usuario');
         $data['transac'] = $do->get('transac');
         $data['estampa'] = $do->get('estampa');
         $data['hora'] = $do->get('hora');
         $mSQL = $this->db->insert_string('sprm', $data);
         $ban = $this->db->simple_query($mSQL);
         if ($ban == false) {
             memowrite($mSQL, 'sprm');
         }
         //CHEQUE DEVUELTO CLIENTE
     } elseif ($tipop == '3') {
         // Crea bmov egreso
         $this->datasis->actusal($codban, $fecha, -1 * $monto);
         $mREG = $this->datasis->damereg("SELECT numcuent, banco, saldo, tbanco FROM banc WHERE codbanc={$dbcodban}");
         $mCUENTA = $mREG['numcuent'];
         $mBANCO = $mREG['banco'];
         $mSALDO = $mREG['saldo'];
         $mTBANCO = $mREG['tbanco'];
         $COMPROB = $this->datasis->fprox_numero('ncomprob');
         $data = array();
         $data['codbanc'] = $codban;
         $data['numcuent'] = $mCUENTA;
         $data['banco'] = $mBANCO;
         $data['saldo'] = $mSALDO;
         $data['fecha'] = $fecha;
         $data['tipo_op'] = $do->get('tipo');
         $data['numero'] = $do->get('numche');
         $data['concepto'] = "CHEQUE DEVUELTO CLIENTE " . $do->get('numero');
         $data['clipro'] = 'C';
         $data['concep2'] = $do->get('observa1');
         $data['concep3'] = $do->get('observa2');
         $data['monto'] = $monto;
         $data['codcp'] = $do->get('clipro');
         $data['nombre'] = $do->get('nombre');
         $data['benefi'] = $do->get('benefi');
         $data['comprob'] = $COMPROB;
         $data['negreso'] = '';
         $data['posdata'] = $fecha;
         $data['liable'] = 'S';
         $data['usuario'] = $do->get('usuario');
         $data['transac'] = $do->get('transac');
         $data['estampa'] = $do->get('estampa');
         $data['hora'] = $do->get('hora');
         $mSQL = $this->db->insert_string('bmov', $data);
         $ban = $this->db->simple_query($mSQL);
         if ($ban == false) {
             memowrite($mSQL, 'bmov');
         }
         // Crea smov CxC
         //$mNUMERO  = $this->datasis->fprox_numero('ndcli');
         $cana = 1;
         $mNUMERO = 'P' . str_pad(substr($do->get('numero'), -1 * ($this->datasis->long - 1)), $this->datasis->long - 1, '0', STR_PAD_LEFT);
         while ($cana > 0) {
             $dbmNUMERO = $this->db->escape($mNUMERO);
             $mSQL = "SELECT COUNT(*) AS cana FROM smov WHERE tipo_doc='ND' AND numero={$dbmNUMERO}";
             $cana = intval($this->datasis->dameval($mSQL));
             if ($cana == 0) {
                 break;
             }
             $mNUMERO = $this->datasis->fprox_numero('ndprmo');
             $mNUMERO = 'P' . substr($mNUMERO, 1);
         }
         $data = array();
         $data['cod_cli'] = $do->get('clipro');
         $data['nombre'] = $do->get('nombre');
         $data['tipo_doc'] = 'ND';
         $data['numero'] = $mNUMERO;
         $data['fecha'] = $fecha;
         $data['monto'] = $do->get('monto');
         $data['impuesto'] = 0;
         $data['vence'] = $do->get('vence');
         $data['tipo_ref'] = 'PR';
         $data['num_ref'] = $do->get('numero');
         $data['observa1'] = $do->get('observa1');
         $data['observa2'] = $do->get('observa2');
         $data['banco'] = $do->get('codban');
         $data['fecha_op'] = $do->get('fecha');
         $data['num_op'] = $do->get('numche');
         $data['tipo_op'] = $do->get('tipo');
         $data['usuario'] = $do->get('usuario');
         $data['transac'] = $do->get('transac');
         $data['estampa'] = $do->get('estampa');
         $data['hora'] = $do->get('hora');
         $mSQL = $this->db->insert_string('smov', $data);
         $ban = $this->db->simple_query($mSQL);
         if ($ban == false) {
             memowrite($mSQL, 'smov');
         }
         //GUARDA CHEQUE DEVUELTO A PROVEEDOR
     } elseif ($tipop == '4') {
         // Crea bmov egreso
         $this->datasis->actusal($codban, $fecha, $monto);
         $mREG = $this->datasis->damereg("SELECT numcuent, banco, saldo, tbanco FROM banc WHERE codbanc={$dbcodban}");
         $mCUENTA = $mREG['numcuent'];
         $mBANCO = $mREG['banco'];
         $mSALDO = $mREG['saldo'];
         $mTBANCO = $mREG['tbanco'];
         $data = array();
         $data['codbanc'] = $codban;
         $data['numcuent'] = $mCUENTA;
         $data['banco'] = $mBANCO;
         $data['saldo'] = $mSALDO;
         $data['fecha'] = $fecha;
         $data['tipo_op'] = $do->get('tipo');
         $data['numero'] = $do->get('numche');
         $data['concepto'] = 'CHEQUE O NOTA DEVUELTO DE PROVEEDOR ' . $do->get('numero');
         $data['clipro'] = 'P';
         $data['concep2'] = $do->get('observa1');
         $data['concep3'] = $do->get('observa2');
         $data['monto'] = $monto;
         $data['codcp'] = $do->get('clipro');
         $data['nombre'] = $do->get('nombre');
         $data['benefi'] = $do->get('benefi');
         //$data['comprob']  = $COMPROB;
         $data['posdata'] = $fecha;
         $data['negreso'] = '';
         $data['posdata'] = $fecha;
         $data['liable'] = 'N';
         $data['usuario'] = $do->get('usuario');
         $data['transac'] = $do->get('transac');
         $data['estampa'] = $do->get('estampa');
         $data['hora'] = $do->get('hora');
         $mSQL = $this->db->insert_string('bmov', $data);
         $ban = $this->db->simple_query($mSQL);
         if ($ban == false) {
             memowrite($mSQL, 'bmov');
         }
         // Crea sprm CxP
         $cana = 1;
         while ($cana > 0) {
             $mNUMERO = $this->datasis->fprox_numero('num_nd');
             $mSQL = "SELECT COUNT(*) AS cana FROM sprm WHERE tipo_doc='ND' AND numero='" . $mNUMERO . "' ";
             $cana = intval($this->datasis->dameval($mSQL));
         }
         $data = array();
         $data['cod_prv'] = $do->get('clipro');
         $data['nombre'] = $do->get('nombre');
         $data['tipo_doc'] = 'ND';
         $data['numero'] = $mNUMERO;
         $data['fecha'] = $fecha;
         $data['monto'] = $do->get('monto');
         $data['impuesto'] = 0;
         $data['vence'] = $do->get('vence');
         $data['tipo_ref'] = 'PR';
         $data['num_ref'] = $do->get('numero');
         $data['observa1'] = $do->get('observa1');
         $data['observa2'] = $do->get('observa2');
         $data['banco'] = $do->get('codban');
         $data['numche'] = $do->get('docum');
         $data['tipo_op'] = $do->get('tipo');
         $data['benefi'] = $do->get('benefi');
         $data['usuario'] = $do->get('usuario');
         $data['transac'] = $do->get('transac');
         $data['estampa'] = $do->get('estampa');
         $data['hora'] = $do->get('hora');
         $mSQL = $this->db->insert_string('sprm', $data);
         $ban = $this->db->simple_query($mSQL);
         if ($ban == false) {
             memowrite($mSQL, 'sprm');
         }
         $mTRAN = $this->datasis->dameval("SELECT transac FROM bmov WHERE tipo_op='CH' AND numero={$dbdocum} AND codbanc={$dbcodban}");
         $this->db->simple_query("UPDATE bmov SET liable='N' WHERE tipo_op='CH' AND numero={$dbdocum} AND codbanc={$dbcodban}");
         //GUARDA DEPOSITO POR ANALIZAR
     } elseif ($tipop == '5') {
         // Crea bmov ingreso
         $this->datasis->actusal($codban, $fecha, $monto);
         $mREG = $this->datasis->damereg("SELECT numcuent, banco, saldo, tbanco FROM banc WHERE codbanc={$dbcodban}");
         $mCUENTA = $mREG['numcuent'];
         $mBANCO = $mREG['banco'];
         $mSALDO = $mREG['saldo'];
         $mTBANCO = $mREG['tbanco'];
         $data = array();
         $data['codbanc'] = $codban;
         $data['numcuent'] = $mCUENTA;
         $data['banco'] = $mBANCO;
         $data['saldo'] = $mSALDO;
         $data['fecha'] = $fecha;
         $data['tipo_op'] = $do->get('tipo');
         $data['numero'] = $do->get('numche');
         $data['concepto'] = 'DEPOSITO POR ANALIZAR ' . $do->get('numero');
         $data['clipro'] = 'P';
         $data['concep2'] = $do->get('observa1');
         $data['concep3'] = $do->get('observa2');
         $data['monto'] = $monto;
         $data['codcp'] = $do->get('clipro');
         $data['nombre'] = $do->get('nombre');
         $data['benefi'] = $do->get('benefi');
         $data['posdata'] = $fecha;
         $data['negreso'] = '';
         $data['posdata'] = $fecha;
         $data['liable'] = 'S';
         $data['usuario'] = $do->get('usuario');
         $data['transac'] = $do->get('transac');
         $data['estampa'] = $do->get('estampa');
         $data['hora'] = $do->get('hora');
         $mSQL = $this->db->insert_string('bmov', $data);
         $ban = $this->db->simple_query($mSQL);
         if ($ban == false) {
             memowrite($mSQL, 'bmov');
         }
         // Crea sprm CxP
         $cana = 1;
         while ($cana > 0) {
             $mNUMERO = $this->datasis->fprox_numero('num_nd');
             $mSQL = "SELECT COUNT(*) AS cana FROM sprm WHERE tipo_doc='ND' AND numero='" . $mNUMERO . "' ";
             $cana = intval($this->datasis->dameval($mSQL));
         }
         $data = array();
         $data['cod_prv'] = $do->get('clipro');
         $data['nombre'] = $do->get('nombre');
         $data['tipo_doc'] = 'ND';
         $data['numero'] = $mNUMERO;
         $data['fecha'] = $fecha;
         $data['monto'] = $do->get('monto');
         $data['impuesto'] = 0;
         $data['vence'] = $do->get('vence');
         $data['tipo_ref'] = 'PR';
         $data['num_ref'] = $do->get('numero');
         $data['observa1'] = $do->get('observa1');
         $data['observa2'] = $do->get('observa2');
         $data['banco'] = $do->get('codban');
         $data['numche'] = $do->get('numche');
         $data['tipo_op'] = $do->get('tipo');
         //$data['benefi']   = $do->get('benefi');
         $data['usuario'] = $do->get('usuario');
         $data['transac'] = $do->get('transac');
         $data['estampa'] = $do->get('estampa');
         $data['hora'] = $do->get('hora');
         $mSQL = $this->db->insert_string('sprm', $data);
         $ban = $this->db->simple_query($mSQL);
         if ($ban == false) {
             memowrite($mSQL, 'sprm');
         }
         //GUARDAR CARGOS INDEBIDOS
     } elseif ($tipop == '6') {
         // Crea bmov egreso
         $this->datasis->actusal($codban, $fecha, -1 * $monto);
         $mREG = $this->datasis->damereg("SELECT numcuent, banco, saldo, tbanco FROM banc WHERE codbanc={$dbcodban}");
         $mCUENTA = $mREG['numcuent'];
         $mBANCO = $mREG['banco'];
         $mSALDO = $mREG['saldo'];
         $mTBANCO = $mREG['tbanco'];
         $data = array();
         $data['codbanc'] = $codban;
         $data['numcuent'] = $mCUENTA;
         $data['banco'] = $mBANCO;
         $data['saldo'] = $mSALDO;
         $data['fecha'] = $fecha;
         $data['tipo_op'] = $do->get('tipo');
         $data['numero'] = $do->get('numche');
         $data['concepto'] = 'CARGOS INDEBIDOS DEL BANCO  ' . $do->get('numero');
         $data['clipro'] = 'C';
         $data['concep2'] = $do->get('observa1');
         $data['concep3'] = $do->get('observa2');
         $data['monto'] = $monto;
         $data['codcp'] = $do->get('clipro');
         $data['nombre'] = $do->get('nombre');
         $data['benefi'] = $do->get('benefi');
         $data['posdata'] = $fecha;
         $data['negreso'] = '';
         $data['posdata'] = $fecha;
         $data['liable'] = 'S';
         $data['usuario'] = $do->get('usuario');
         $data['transac'] = $do->get('transac');
         $data['estampa'] = $do->get('estampa');
         $data['hora'] = $do->get('hora');
         $mSQL = $this->db->insert_string('bmov', $data);
         $ban = $this->db->simple_query($mSQL);
         if ($ban == false) {
             memowrite($mSQL, 'bmov');
         }
         //$mNUMERO  = $this->datasis->fprox_numero('ndcli');
         $cana = 1;
         $mNUMERO = 'P' . str_pad(substr($do->get('numero'), -1 * ($this->datasis->long - 1)), $this->datasis->long - 1, '0', STR_PAD_LEFT);
         while ($cana > 0) {
             $dbmNUMERO = $this->db->escape($mNUMERO);
             $mSQL = "SELECT COUNT(*) AS cana FROM smov WHERE tipo_doc='ND' AND numero={$dbmNUMERO}";
             $cana = intval($this->datasis->dameval($mSQL));
             if ($cana == 0) {
                 break;
             }
             $mNUMERO = $this->datasis->fprox_numero('ndprmo');
             $mNUMERO = 'P' . substr($mNUMERO, 1);
         }
         $data = array();
         $data['cod_cli'] = $do->get('clipro');
         $data['nombre'] = $do->get('nombre');
         $data['tipo_doc'] = 'ND';
         $data['numero'] = $mNUMERO;
         $data['fecha'] = $fecha;
         $data['monto'] = $do->get('monto');
         $data['impuesto'] = 0;
         $data['vence'] = $do->get('vence');
         $data['tipo_ref'] = 'PR';
         $data['num_ref'] = $do->get('numero');
         $data['observa1'] = $do->get('observa1');
         $data['observa2'] = $do->get('observa2');
         $data['banco'] = $do->get('codban');
         $data['fecha_op'] = $do->get('fecha');
         $data['num_op'] = $do->get('numche');
         $data['tipo_op'] = $do->get('tipo');
         $data['usuario'] = $do->get('usuario');
         $data['transac'] = $do->get('transac');
         $data['estampa'] = $do->get('estampa');
         $data['hora'] = $do->get('hora');
         $mSQL = $this->db->insert_string('smov', $data);
         $ban = $this->db->simple_query($mSQL);
         if ($ban == false) {
             memowrite($mSQL, 'smov');
         }
     }
     logusu($do->table, "Creo {$this->t**s} {$numero} {$primary} ");
 }
Beispiel #8
0
 function cargamdb()
 {
     $path = reduce_double_slashes(FCPATH . '/uploads/traspasos');
     $dirlocal = $path . '/gpt.mdb';
     $mdb = mdb_open($dirlocal);
     if ($mdb === false) {
         return false;
     }
     //$tablas=mdb_tables($mdb);
     $tablas = array('pro');
     foreach ($tablas as $tabla) {
         //echo $tabla.br();
         $sistab = "gpt_{$tabla}";
         $this->db->simple_query("TRUNCATE {$sistab}");
         $tbl = mdb_table_open($mdb, $tabla);
         if ($tbl === false) {
             continue;
         }
         while ($row = mdb_fetch_assoc($tbl)) {
             $sql = $this->db->insert_string($sistab, $row);
             $ban = $this->db->simple_query($sql);
             if ($ban == false) {
                 $error++;
                 memowrite($sql, 'gpt_prod');
             }
         }
     }
 }
Beispiel #9
0
    function _post_insert($do)
    {
        $alma = $do->get('almacen');
        $numero = $do->get('numero');
        $cana = $do->count_rel('itconv');
        for ($i = 0; $i < $cana; $i++) {
            $codigo = $do->get_rel('itconv', 'codigo', $i);
            $ent = $do->get_rel('itconv', 'entrada', $i);
            $sal = $do->get_rel('itconv', 'salida', $i);
            $monto = $ent - $sal;
            $dbcodigo = $this->db->escape($codigo);
            $dbalma = $this->db->escape($alma);
            $this->datasis->sinvcarga($codigo, $alma, $monto);
            if ($monto > 0 && $this->peso_entradas > 0) {
                // Entrada
                $peso = $this->pesos[$codigo] * $monto;
                $participa = $peso / $this->peso_entradas;
                $ncosto = round($this->costo_salidas * $participa / $monto, 2);
                if ($ncosto > 0) {
                    $mycosto = "IF(formcal='P',pond,IF(formcal='U',{$ncosto},IF(formcal='S',standard,GREATEST(pond,ultimo))))";
                    $mSQL = 'UPDATE sinv SET
							ultimo =' . $ncosto . ',
							base1  =ROUND(precio1*10000/(100+iva))/100,
							base2  =ROUND(precio2*10000/(100+iva))/100,
							base3  =ROUND(precio3*10000/(100+iva))/100,
							base4  =ROUND(precio4*10000/(100+iva))/100,
							margen1=ROUND(10000-((' . $mycosto . ')*10000/base1))/100,
							margen2=ROUND(10000-((' . $mycosto . ')*10000/base2))/100,
							margen3=ROUND(10000-((' . $mycosto . ')*10000/base3))/100,
							margen4=ROUND(10000-((' . $mycosto . ')*10000/base4))/100
					WHERE codigo=' . $dbcodigo;
                    $ban = $this->db->simple_query($mSQL);
                    if (!$ban) {
                        memowrite($mSQL, 'conv');
                    }
                }
            }
        }
        //trafrac ittrafrac
        logusu('conv', "Conversion {$numero} CREADA");
    }
Beispiel #10
0
 function _cargar($control, $nfiscal, $almacen, $dias)
 {
     $control = $this->db->escape($control);
     $farmaxDB = $this->load->database('farmax', true);
     $farmaxdb = $farmaxDB->database;
     $localdb = $this->db->database;
     $retorna = '';
     $sql = "SELECT COUNT(*) AS cana\n\t\t  FROM {$farmaxdb}.itscst AS a\n\t\t  LEFT JOIN {$localdb}.sinv AS b ON a.codigo=b.codigo\n\t\t  LEFT JOIN {$localdb}.farmaxasig AS c ON a.codigo=c.barras AND c.proveed=a.proveed\n\t\tWHERE a.control={$control} AND b.codigo IS NULL AND c.abarras IS NULL";
     $query = $this->db->query($sql);
     if ($query->num_rows() > 0) {
         $row = $query->row_array();
         if ($row['cana'] == 0) {
             //$query=$farmaxDB->query("SELECT * FROM scst WHERE control=$control AND pcontrol IS NULL");
             $query = $farmaxDB->query("SELECT * FROM scst WHERE control={$control}");
             if ($query->num_rows() == 1) {
                 $row = $query->row_array();
                 $pcontrol = $row['pcontrol'];
                 if ($this->_btn_cargar($pcontrol)) {
                     $lcontrol = $this->datasis->fprox_numero('nscst');
                     $transac = $this->datasis->fprox_numero('ntransa');
                     $contribu = $this->datasis->traevalor('CONTRIBUYENTE');
                     $rif = $this->datasis->traevalor('RIF');
                     $estampa = date('Ymd');
                     $hora = date('H:i:s');
                     $numero = $row['numero'];
                     $proveed = $row['proveed'];
                     $row['serie'] = $numero;
                     $row['numero'] = substr($numero, -8);
                     $row['control'] = $lcontrol;
                     $row['transac'] = $transac;
                     $row['nfiscal'] = $nfiscal;
                     $row['credito'] = $row['montonet'];
                     $row['anticipo'] = 0;
                     $row['inicial'] = 0;
                     $row['estampa'] = $estampa;
                     $row['hora'] = $hora;
                     $row['usuario'] = $this->session->userdata('usuario');
                     $row['depo'] = $almacen;
                     $cd = strtotime($row['fecha']);
                     $row['vence'] = date('Y-m-d', mktime(0, 0, 0, date('m', $cd), date('d', $cd) + $dias, date('Y', $cd)));
                     $mmsql = "SELECT iva,SUM(montoiva) AS monto,SUM(importe) AS base FROM itscst WHERE control={$control} GROUP BY iva";
                     $m_iva = $farmaxDB->query($mmsql);
                     $ivas = $this->datasis->ivaplica($row['fecha']);
                     $tasa = $redutasa = $sobretasa = $exento = $basetasa = $baseredu = $baseadicio = 0;
                     foreach ($m_iva->result_array() as $ivarow) {
                         if ($ivarow['iva'] == $ivas['redutasa']) {
                             $redutasa += $ivarow['monto'];
                             $baseredu += $ivarow['base'];
                         } elseif ($ivarow['iva'] == $ivas['tasa']) {
                             $tasa += $ivarow['monto'];
                             $basetasa += $ivarow['base'];
                         } elseif ($ivarow['iva'] == $ivas['sobretasa']) {
                             $sobretasa += $ivarow['monto'];
                             $baseadicio += $ivarow['base'];
                         } elseif ($ivarow['iva'] == 0) {
                             $exento += $ivarow['base'];
                         }
                     }
                     $row['reducida'] = $redutasa;
                     $row['tasa'] = $tasa;
                     $row['sobretasa'] = $sobretasa;
                     $row['monredu'] = $redutasa;
                     $row['montasa'] = $tasa;
                     $row['monadic'] = $sobretasa;
                     $row['ctotal'] = $row['montonet'];
                     $row['cstotal'] = $row['montotot'];
                     $row['cexento'] = $exento;
                     $row['cimpuesto'] = $redutasa + $tasa + $sobretasa;
                     $row['cgenera'] = $basetasa;
                     $row['civagen'] = $tasa;
                     $row['cadicio'] = $baseadicio;
                     $row['civaadi'] = $sobretasa;
                     $row['creduci'] = $baseredu;
                     $row['civared'] = $redutasa;
                     unset($row['pcontrol']);
                     if ($contribu == 'ESPECIAL' && strtoupper($rif[0]) != 'V') {
                         $por_rete = $this->datasis->dameval('SELECT reteiva FROM sprv WHERE proveed=' . $this->db->escape($row['proveed']));
                         if ($por_rete != 100) {
                             $por_rete = 0.75;
                         } else {
                             $por_rete = $por_rete / 100;
                         }
                         $row['reteiva'] = round($row['montoiva'] * $por_rete, 2);
                     }
                     $mSQL[] = $this->db->insert_string('scst', $row);
                     $itquery = $farmaxDB->query("SELECT * FROM itscst WHERE control={$control}");
                     //echo "SELECT * FROM itscst WHERE control=$control";
                     $esstd = $this->datasis->traevalor('SCSTSD');
                     foreach ($itquery->result_array() as $itrow) {
                         $codigo = $this->datasis->dameval('SELECT abarras FROM farmaxasig WHERE barras=' . $this->db->escape($itrow['codigo']) . ' AND proveed=' . $this->db->escape($proveed));
                         $itrow['codigo'] = $codigo;
                         $itrow['control'] = $lcontrol;
                         $itrow['usuario'] = $this->session->userdata('usuario');
                         $itrow['estampa'] = $estampa;
                         $itrow['hora'] = $hora;
                         $itrow['transac'] = $transac;
                         if ($esstd == 'F') {
                             $itrow['rmargen'] = 'S';
                         }
                         unset($itrow['id']);
                         if (isset($itrow['pmanual'])) {
                             unset($itrow['pmanual']);
                         }
                         $mSQL[] = $this->db->insert_string('itscst', $itrow);
                     }
                     foreach ($mSQL as $sql) {
                         $rt = $this->db->simple_query($sql);
                         if (!$rt) {
                             memowrite($sql, 'scstfarma');
                         }
                     }
                     $sql = "UPDATE scst SET pcontrol='{$lcontrol}' WHERE control={$control}";
                     $rt = $farmaxDB->simple_query($sql);
                     if (!$rt) {
                         memowrite($sql, 'farmaejec');
                     }
                     /*$mSQL="UPDATE
                     		  ${localdb}.itscst AS a
                     		  JOIN ${localdb}.farmaxasig AS b ON a.codigo=b.barras AND a.proveed=b.proveed
                     		  SET a.codigo=b.abarras
                     		WHERE a.control='$lcontrol'";
                     		$rt=$this->db->simple_query($mSQL);
                     		if(!$rt){ memowrite('farmaejec1',$sql);}*/
                     logusu('scst', "Compra {$numero} control {$lcontrol} CARGADA DESDE FarmaSIS");
                     $retorna = 'Compra guardada con el control ' . $lcontrol;
                     //.anchor("compras/scst/dataedit/show/${lcontrol}",$lcontrol);
                 } else {
                     $retorna = 'Al parecer la factura fue ya pasada';
                 }
             } else {
                 $retorna = 'Control no existe';
             }
         } else {
             $retorna = 'No se puede pasar porque hay productos que no existen en inventario';
         }
     } else {
         $retorna = 'Error en la consulta';
     }
     return $retorna;
 }
Beispiel #11
0
 function _post_insert($do)
 {
     $primary = $do->get('id');
     $error = 0;
     $montan = 0;
     // Monto para anticipar
     $sobrante = 0;
     // Monto sobrante para anticipar, reitegrar o pagar
     $abonado = 0;
     // Abonado si alguna factura esta pagada
     $rp = false;
     // Bandera para indicar retencion pendiente
     $transac = $do->get('transac');
     $estampa = $do->get('estampa');
     $hora = $do->get('hora');
     $cod_cli = $do->get('cod_cli');
     $nombre = $do->get('nombre');
     $estampa = $do->get('estampa');
     $usuario = $do->get('usuario');
     $hora = $do->get('hora');
     $operacion = $do->get('operacion');
     $periodo = $do->get('periodo');
     $id = $do->get('id');
     $numero = $do->get('nrocomp');
     $comprob = $periodo . $numero;
     $dbcod_cli = $this->db->escape($cod_cli);
     $dbtransac = $this->db->escape($transac);
     $efecha = $do->get('emision');
     $fecha = $do->get('fecha');
     $ex_fecha = explode('-', $fecha);
     $vence = $ex_fecha[0] . $ex_fecha[1] . days_in_month($ex_fecha[1], $ex_fecha[0]);
     $mNUMERO = 'R' . str_pad($primary, $this->datasis->long - 1, '0', STR_PAD_LEFT);
     $mSQL = "DELETE FROM smov WHERE transac={$dbtransac}";
     $ban = $this->db->simple_query($mSQL);
     if ($ban == false) {
         memowrite($mSQL, 'RIVC');
     }
     $arr_dev = array();
     $cli_dev = 0;
     $rel = 'itrivc';
     $cana = $do->count_rel($rel);
     for ($i = 0; $i < $cana; $i++) {
         $ittipo_doc = $do->get_rel($rel, 'tipo_doc', $i);
         $itnumero = $do->get_rel($rel, 'numero', $i);
         $itfecha = $do->get_rel($rel, 'fecha', $i);
         $itmonto = floatval($do->get_rel($rel, 'reiva', $i));
         $dbitnumero = $this->db->escape($itnumero);
         $dbittipo_doc = $this->db->escape($ittipo_doc);
         //Chequea que su origen sea sfac
         if ($ittipo_doc == 'F' || $ittipo_doc == 'D') {
             $sql = "SELECT referen,reiva,factura,cod_cli,nombre FROM sfac WHERE numero={$dbitnumero} AND tipo_doc={$dbittipo_doc}";
             $query = $this->db->query($sql);
             if ($query->num_rows() > 0) {
                 $row = $query->row();
                 $anterior = $row->reiva;
                 $itreferen = $row->referen;
                 $itfactura = $row->factura;
             }
             if ($anterior == 0) {
                 $mSQL = "UPDATE sfac SET reiva={$itmonto}, creiva='{$periodo}{$numero}', freiva='{$fecha}', ereiva='{$efecha}' WHERE numero={$dbitnumero} AND tipo_doc={$dbittipo_doc}";
                 $ban = $this->db->simple_query($mSQL);
                 if ($ban == false) {
                     memowrite($mSQL, 'rivc');
                 }
             }
         } else {
             //En caso de provenir de smov
             if ($ittipo_doc == 'NC') {
                 $mSQL = "UPDATE smov SET reteiva={$itmonto}, nroriva='{$periodo}{$numero}', emiriva='{$efecha}' WHERE numero={$dbitnumero} AND tipo_doc={$dbittipo_doc} AND cod_cli={$dbcod_cli} LIMIT 1";
                 $ban = $this->db->simple_query($mSQL);
                 if ($ban == false) {
                     memowrite($mSQL, 'rivc');
                 }
                 $itreferen = 'E';
             } else {
                 $itreferen = 'C';
             }
         }
         //Chequea si es credito y si tiene saldo
         if ($itreferen == 'C') {
             $iittipo_doc = $ittipo_doc == 'F' ? 'FC' : $ittipo_doc;
             $dbiittipo_doc = $this->db->escape($iittipo_doc);
             $saldo = floatval($this->datasis->dameval("SELECT monto-abonos FROM smov WHERE tipo_doc={$dbiittipo_doc} AND numero={$dbitnumero}"));
         } else {
             if ($ittipo_doc == 'F') {
                 //Busca un tipo de pago RP
                 $sel = array('b.monto - b.abonos AS saldo', 'b.numero');
                 $this->db->select($sel);
                 $this->db->from('sfac AS a');
                 $this->db->join('smov AS b', 'a.cod_cli=b.cod_cli AND a.transac=b.transac AND a.fecha=b.fecha');
                 $this->db->where('a.tipo_doc', 'F');
                 $this->db->where('b.tipo_doc', 'ND');
                 $this->db->where('a.numero', $itnumero);
                 $query = $this->db->get();
                 if ($query->num_rows() > 0) {
                     $row = $query->row();
                     $ittipo_doc = 'ND';
                     $itnumero = $row->numero;
                     $saldo = floatval($row->saldo);
                     $rp = true;
                 } else {
                     $saldo = 0;
                 }
             } else {
                 $saldo = 0;
             }
         }
         //Si es una factura o una nota de debito por causa o no causa de una RP
         if ($ittipo_doc == 'F' || $ittipo_doc == 'ND') {
             //Si el saldo es 0  o menor que el monto retenido
             if ($saldo == 0) {
                 $sobrante += $itmonto;
             } else {
                 //Como tiene saldo pendiente crea una NC y la aplica a la FC
                 $aplmonto = $itmonto > $saldo ? $saldo : $itmonto;
                 $sobrante += $itmonto - $aplmonto;
                 $mnumnc = 'I' . $this->datasis->fprox_numero('ncint', -1);
                 //$this->datasis->fprox_numero('nccli');
                 $data = array();
                 $data['cod_cli'] = $cod_cli;
                 $data['nombre'] = $nombre;
                 $data['tipo_doc'] = 'NC';
                 $data['numero'] = $mnumnc;
                 $data['fecha'] = $fecha;
                 $data['monto'] = $aplmonto;
                 $data['impuesto'] = 0;
                 $data['abonos'] = $aplmonto;
                 $data['vence'] = $fecha;
                 $data['tipo_ref'] = $rp || $ittipo_doc == 'F' ? 'FC' : $ittipo_doc;
                 $data['num_ref'] = $do->get_rel($rel, 'numero', $i);
                 $data['observa1'] = 'APLICACION DE RET/IVA A FC' . $do->get_rel($rel, 'numero', $i);
                 $data['estampa'] = $estampa;
                 $data['hora'] = $hora;
                 $data['transac'] = $transac;
                 $data['usuario'] = $usuario;
                 $data['codigo'] = 'NOCON';
                 $data['descrip'] = 'NOTA DE CONTABILIDAD';
                 $data['fecdoc'] = $itfecha;
                 $data['nroriva'] = $comprob;
                 $data['emiriva'] = $efecha;
                 $mSQL = $this->db->insert_string('smov', $data);
                 $ban = $this->db->simple_query($mSQL);
                 if ($ban == false) {
                     memowrite($mSQL, 'rivc');
                 }
                 //Aplica la NC a la FC o ND segun sea el caso
                 $data = array();
                 $data['numccli'] = $itnumero;
                 $data['tipoccli'] = $ittipo_doc == 'F' ? 'FC' : 'ND';
                 $data['cod_cli'] = $cod_cli;
                 $data['tipo_doc'] = 'NC';
                 $data['numero'] = $mnumnc;
                 $data['fecha'] = $fecha;
                 $data['monto'] = $aplmonto;
                 $data['abono'] = $aplmonto;
                 $data['ppago'] = 0;
                 $data['reten'] = 0;
                 $data['cambio'] = 0;
                 $data['mora'] = 0;
                 $data['transac'] = $transac;
                 $data['estampa'] = $estampa;
                 $data['hora'] = $hora;
                 $data['usuario'] = $usuario;
                 $data['reteiva'] = 0;
                 $data['nroriva'] = '';
                 $data['emiriva'] = '';
                 $data['recriva'] = '';
                 $mSQL = $this->db->insert_string('itccli', $data);
                 $ban = $this->db->simple_query($mSQL);
                 if ($ban == false) {
                     memowrite($mSQL, 'rivc');
                 }
                 // Abona la factura
                 $tiposfac = $ittipo_doc == 'F' ? 'FC' : 'ND';
                 $mSQL = "UPDATE smov SET abonos=abonos+{$aplmonto} WHERE numero='{$itnumero}' AND cod_cli={$dbcod_cli} AND tipo_doc='{$tiposfac}'";
                 $ban = $this->db->simple_query($mSQL);
                 if ($ban == false) {
                     memowrite($mSQL, 'rivc');
                 }
             }
             $mnumnd = 'I' . $this->datasis->fprox_numero('ndint', -1);
             //$this->datasis->fprox_numero('ndcli');
             $data = array();
             $data['cod_cli'] = 'REIVA';
             $data['nombre'] = 'RETENCION DE I.V.A. POR COMPENSAR';
             $data['tipo_doc'] = 'ND';
             $data['numero'] = $mnumnd;
             $data['fecha'] = $fecha;
             $data['monto'] = $itmonto;
             $data['impuesto'] = 0;
             $data['abonos'] = 0;
             $data['vence'] = $vence;
             $data['tipo_ref'] = 'FC';
             $data['num_ref'] = $do->get_rel($rel, 'numero', $i);
             $data['observa1'] = 'RET/IVA DE ' . $cod_cli . ' A DOC. FC' . $do->get_rel($rel, 'numero', $i);
             $data['estampa'] = $estampa;
             $data['hora'] = $hora;
             $data['transac'] = $transac;
             $data['usuario'] = $usuario;
             $data['codigo'] = 'NOCON';
             $data['descrip'] = 'NOTA DE CONTABILIDAD';
             $data['nroriva'] = $comprob;
             $data['emiriva'] = $efecha;
             $mSQL = $this->db->insert_string('smov', $data);
             $ban = $this->db->simple_query($mSQL);
             if ($ban == false) {
                 memowrite($mSQL, 'RIVC');
             }
         } else {
             //Si es una devolucion
             // Devoluciones genera un ND al cliente
             $mnumnd = 'I' . $this->datasis->fprox_numero('ndint', -1);
             //$this->datasis->fprox_numero('ndcli');
             $data = array();
             $data['cod_cli'] = $cod_cli;
             $data['nombre'] = $nombre;
             $data['tipo_doc'] = 'ND';
             $data['numero'] = $mnumnd;
             $data['fecha'] = $fecha;
             $data['monto'] = $itmonto;
             $data['impuesto'] = 0;
             $data['abonos'] = 0;
             $data['vence'] = $fecha;
             $data['tipo_ref'] = $ittipo_doc == 'F' ? 'FC' : 'DV';
             $data['num_ref'] = $itnumero;
             $data['observa1'] = 'RET/IVA DE ' . $cod_cli . ' A DOC. ' . $ittipo_doc . $itnumero;
             $data['estampa'] = $estampa;
             $data['hora'] = $hora;
             $data['transac'] = $transac;
             $data['usuario'] = $usuario;
             $data['nroriva'] = $comprob;
             $data['emiriva'] = $efecha;
             $mSQL = $this->db->insert_string('smov', $data);
             $ban = $this->db->simple_query($mSQL);
             if ($ban == false) {
                 memowrite($mSQL, 'rivc');
             }
             $arr_dev[$mnumnd] = $itmonto;
             $cli_dev += $itmonto;
             //Devoluciones debe crear un NC si esta en el periodo
             $mnumnc = 'I' . $this->datasis->fprox_numero('ncint', -1);
             //$this->datasis->fprox_numero('nccli');
             $data = array();
             $data['cod_cli'] = 'REIVA';
             $data['nombre'] = 'RETENCION DE I.V.A. POR COMPENSAR';
             $data['tipo_doc'] = 'NC';
             $data['numero'] = $mnumnc;
             $data['fecha'] = $fecha;
             $data['monto'] = $itmonto;
             $data['impuesto'] = 0;
             $data['abonos'] = 0;
             $data['vence'] = $fecha;
             $data['tipo_ref'] = $ittipo_doc == 'F' ? 'FC' : $ittipo_doc == 'NC' ? 'NC' : 'DV';
             $data['num_ref'] = $itnumero;
             $data['observa1'] = 'RET/IVA DE ' . $cod_cli . ' A DOC.' . $ittipo_doc . $itnumero;
             $data['estampa'] = $estampa;
             $data['hora'] = $hora;
             $data['transac'] = $transac;
             $data['usuario'] = $usuario;
             $data['codigo'] = 'NOCON';
             $data['descrip'] = 'NOTA DE CONTABILIDAD';
             $data['nroriva'] = $comprob;
             $data['emiriva'] = $efecha;
             $mSQL = $this->db->insert_string('smov', $data);
             $ban = $this->db->simple_query($mSQL);
             if ($ban == false) {
                 memowrite($mSQL, 'rivc');
             }
             if ($ittipo_doc != 'NC') {
                 //Aplica la NC a la ND si es posible a REIVA
                 //$mnumnd; $fecha;
                 $this->db->select(array('a.numero', 'a.fecha', 'a.monto - a.abonos AS saldo'));
                 $this->db->from('smov   AS a');
                 $this->db->join('itrivc AS b', 'a.transac=b.transac AND a.fecha=b.fecha AND a.num_ref=b.numero');
                 $this->db->where('b.numero', $itfactura);
                 $this->db->where('b.tipo_doc', 'F');
                 $this->db->where('a.tipo_doc', 'ND');
                 $this->db->where('a.cod_cli', 'REIVA');
                 $qquery = $this->db->get();
                 if ($qquery->num_rows() == 1) {
                     $rrrow = $qquery->row();
                     if ($rrrow->saldo >= $itmonto) {
                         $data = array();
                         $data['numccli'] = $mnumnc;
                         $data['tipoccli'] = 'NC';
                         $data['cod_cli'] = 'REIVA';
                         $data['tipo_doc'] = 'ND';
                         $data['numero'] = $rrrow->numero;
                         $data['fecha'] = $rrrow->fecha;
                         $data['monto'] = $itmonto;
                         $data['abono'] = $itmonto;
                         $data['ppago'] = 0;
                         $data['reten'] = 0;
                         $data['cambio'] = 0;
                         $data['mora'] = 0;
                         $data['transac'] = $transac;
                         $data['estampa'] = $estampa;
                         $data['hora'] = $hora;
                         $data['usuario'] = $usuario;
                         $data['reteiva'] = 0;
                         $data['nroriva'] = '';
                         $data['emiriva'] = '';
                         $data['recriva'] = '';
                         $mSQL = $this->db->insert_string('itccli', $data);
                         $ban = $this->db->simple_query($mSQL);
                         if ($ban == false) {
                             memowrite($mSQL, 'rivc');
                         }
                         //Abona la ND
                         $dbfecha = $this->db->escape($rrrow->fecha);
                         $dbnumero = $this->db->escape($rrrow->numero);
                         $mSQL = "UPDATE smov SET abonos=abonos+{$itmonto}\n\t\t\t\t\t\t\tWHERE\n\t\t\t\t\t\t\tcod_cli ='REIVA' AND\n\t\t\t\t\t\t\ttipo_doc='ND' AND\n\t\t\t\t\t\t\tnumero  = {$dbnumero} AND\n\t\t\t\t\t\t\tfecha   = {$dbfecha}";
                         $ban = $this->db->simple_query($mSQL);
                         if ($ban == false) {
                             memowrite($mSQL, 'rivc');
                         }
                         //Abona la NC
                         $dbfecha = $this->db->escape($fecha);
                         $dbnumero = $this->db->escape($mnumnc);
                         $mSQL = "UPDATE smov SET abonos=monto\n\t\t\t\t\t\t\tWHERE\n\t\t\t\t\t\t\tcod_cli ='REIVA' AND\n\t\t\t\t\t\t\ttipo_doc='NC' AND\n\t\t\t\t\t\t\tnumero  = {$dbnumero} AND\n\t\t\t\t\t\t\tfecha   = {$dbfecha}";
                         $ban = $this->db->simple_query($mSQL);
                         if ($ban == false) {
                             memowrite($mSQL, 'rivc');
                         }
                     }
                 }
             }
         }
     }
     //Chequea si es un reintegro para crear un solo egreso de caja
     if ($sobrante > 0) {
         //Revisa si tiene que cruzar sobrante
         if (count($arr_dev) > 0) {
             $aplmonto = $cli_dev > $sobrante ? $sobrante : $cli_dev;
             $mnumnc = 'I' . $this->datasis->fprox_numero('ncint', -1);
             //$this->datasis->fprox_numero('nccli');
             $data = array();
             $data['cod_cli'] = $cod_cli;
             $data['nombre'] = $nombre;
             $data['tipo_doc'] = 'NC';
             $data['numero'] = $mnumnc;
             $data['fecha'] = $fecha;
             $data['monto'] = $aplmonto;
             $data['impuesto'] = 0;
             $data['abonos'] = $aplmonto;
             $data['vence'] = $fecha;
             $data['tipo_ref'] = '';
             $data['num_ref'] = '';
             $data['observa1'] = 'SOBRANTE DE RET/IVA ' . $comprob;
             $data['estampa'] = $estampa;
             $data['hora'] = $hora;
             $data['transac'] = $transac;
             $data['usuario'] = $usuario;
             $data['codigo'] = 'NOCON';
             $data['descrip'] = 'NOTA DE CONTABILIDAD';
             $data['fecdoc'] = $fecha;
             $data['nroriva'] = $comprob;
             $data['emiriva'] = $efecha;
             $mSQL = $this->db->insert_string('smov', $data);
             $ban = $this->db->simple_query($mSQL);
             if ($ban == false) {
                 memowrite($mSQL, 'rivc');
             }
             foreach ($arr_dev as $num => $valor) {
                 if ($sobrante == 0) {
                     break;
                 }
                 if ($sobrante >= $valor) {
                     $sobrante -= $valor;
                 } else {
                     $valor = $sobrante;
                     $sobrante = 0;
                 }
                 $data = array();
                 $data['numccli'] = $mnumnc;
                 $data['tipoccli'] = 'NC';
                 $data['cod_cli'] = $cod_cli;
                 $data['tipo_doc'] = 'ND';
                 $data['numero'] = $num;
                 $data['fecha'] = $fecha;
                 $data['monto'] = $valor;
                 $data['abono'] = $valor;
                 $data['ppago'] = 0;
                 $data['reten'] = 0;
                 $data['cambio'] = 0;
                 $data['mora'] = 0;
                 $data['transac'] = $transac;
                 $data['estampa'] = $estampa;
                 $data['hora'] = $hora;
                 $data['usuario'] = $usuario;
                 $data['reteiva'] = 0;
                 $data['nroriva'] = '';
                 $data['emiriva'] = '';
                 $data['recriva'] = '';
                 $mSQL = $this->db->insert_string('itccli', $data);
                 $ban = $this->db->simple_query($mSQL);
                 if ($ban == false) {
                     memowrite($mSQL, 'rivc');
                 }
                 //Abona la ND
                 $dbfecha = $this->db->escape($fecha);
                 $dbnumero = $this->db->escape($num);
                 $mSQL = "UPDATE smov SET abonos=monto\n\t\t\t\t\tWHERE\n\t\t\t\t\tcod_cli ={$dbcod_cli} AND\n\t\t\t\t\ttipo_doc='ND' AND\n\t\t\t\t\tnumero  = {$dbnumero} AND\n\t\t\t\t\ttransac = {$dbtransac}";
                 $ban = $this->db->simple_query($mSQL);
                 if ($ban == false) {
                     memowrite($mSQL, 'rivc');
                 }
             }
         }
         //Fin del cruce del sobrante
         if ($operacion == 'A' && $sobrante > 0) {
             $mnumant = $this->datasis->fprox_numero('nancli');
             $data = array();
             $data['cod_cli'] = $cod_cli;
             $data['nombre'] = $nombre;
             $data['tipo_doc'] = 'AN';
             $data['numero'] = $mnumant;
             $data['fecha'] = $fecha;
             $data['monto'] = $sobrante;
             $data['impuesto'] = 0;
             $data['vence'] = $fecha;
             $data['tipo_ref'] = 'CR';
             $data['num_ref'] = $numero;
             $data['observa1'] = 'RET/IVA DE ' . $cod_cli . ' A CR' . $comprob;
             $data['usuario'] = $usuario;
             $data['estampa'] = $estampa;
             $data['hora'] = $hora;
             $data['transac'] = $transac;
             $data['fecdoc'] = $fecha;
             $data['nroriva'] = $comprob;
             $data['emiriva'] = $efecha;
             $mSQL = $this->db->insert_string('smov', $data);
             $ban = $this->db->simple_query($mSQL);
             if ($ban == false) {
                 memowrite($mSQL, 'RIVC');
             }
         } elseif ($operacion == 'R' && $sobrante > 0) {
             $codbanc = $do->get('codbanc');
             $datacar = common::_traebandata($codbanc);
             $sp_fecha = date('Ymd');
             $ttipo = $datacar['tbanco'];
             $moneda = $datacar['moneda'];
             $negreso = $this->datasis->fprox_numero('negreso');
             if ($ttipo == 'CAJ') {
                 $numeroch = $this->datasis->fprox_numero('ncaja' . $codbanc);
                 $tipo_op = 'ND';
                 $tipo1 = 'D';
             } else {
                 //Pago con banco, falta implementar
                 $numeroch = 'NUMERO CHEQUE';
                 $tipo_op = 'CH';
                 $tipo1 = 'C';
             }
             $data = array();
             $data['codbanc'] = $codbanc;
             $data['moneda'] = $moneda;
             $data['numcuent'] = $datacar['numcuent'];
             $data['banco'] = $datacar['banco'];
             $data['saldo'] = $datacar['saldo'];
             $data['tipo_op'] = $tipo_op;
             $data['numero'] = $numeroch;
             $data['fecha'] = date('Y-m-d');
             $data['clipro'] = 'C';
             $data['codcp'] = $cod_cli;
             $data['nombre'] = $nombre;
             $data['monto'] = $sobrante;
             $data['concepto'] = 'REINTEGRO RET/IVA DE ' . $cod_cli;
             $data['concep2'] = ' CR' . $comprob;
             $data['benefi'] = '';
             $data['posdata'] = '';
             $data['abanco'] = '';
             $data['liable'] = $ttipo == 'CAJ' ? 'S' : 'N';
             $data['transac'] = $transac;
             $data['usuario'] = $usuario;
             $data['estampa'] = $estampa;
             $data['hora'] = $hora;
             $data['anulado'] = 'N';
             $data['susti'] = '';
             $data['negreso'] = $negreso;
             $sql = $this->db->insert_string('bmov', $data);
             $ban = $this->db->simple_query($sql);
             if ($ban == false) {
                 memowrite($sql, 'rivc');
                 $error++;
             }
             $this->datasis->actusal($codbanc, $sp_fecha, -1 * $sobrante);
         } elseif ($operacion == 'P' && $sobrante > 0) {
             //Lo manda a cuenta por pagar
             $causado = $this->datasis->fprox_numero('ncausado');
             $mnsprm = $mNUMERO;
             //$this->datasis->fprox_numero('num_nd');
             $data = array();
             $data['cod_prv'] = 'REINT';
             $data['nombre'] = 'REINTEGROS CLIENTES';
             $data['tipo_doc'] = 'ND';
             $data['numero'] = $mnsprm;
             $data['fecha'] = $fecha;
             $data['monto'] = $sobrante;
             $data['impuesto'] = 0;
             $data['abonos'] = 0;
             $data['vence'] = $fecha;
             $data['observa1'] = 'CARGO A CXC RET/IVA CR ' . $comprob;
             $data['observa2'] = 'DEL CLIENTE ' . $cod_cli;
             $data['tipo_ref'] = 'CR';
             $data['num_ref'] = $numero;
             $data['transac'] = $transac;
             $data['estampa'] = $estampa;
             $data['hora'] = $hora;
             $data['usuario'] = $usuario;
             $data['reteiva'] = 0;
             $data['montasa'] = 0;
             $data['monredu'] = 0;
             $data['monadic'] = 0;
             $data['tasa'] = 0;
             $data['reducida'] = 0;
             $data['sobretasa'] = 0;
             $data['exento'] = 0;
             $data['causado'] = $causado;
             $data['codigo'] = 'NOCON';
             $data['descrip'] = 'NOTA DE CONTABILIDAD';
             $sql = $this->db->insert_string('sprm', $data);
             $ban = $this->db->simple_query($sql);
             if ($ban == false) {
                 memowrite($sql, 'rivc');
                 $error++;
             }
             $sql = 'UPDATE rivc SET sprmreinte=' . $this->db->escape($mnsprm) . ' WHERE id=' . $this->db->escape($id);
             $ban = $this->db->simple_query($sql);
             if ($ban == false) {
                 memowrite($sql, 'rivc');
                 $error++;
             }
         }
     }
     $periodo = $do->get('periodo');
     $nrocomp = $do->get('nrocomp');
     $primary = implode(',', $do->pk);
     logusu($do->table, "Creo {$this->t**s} ID {$primary} {$periodo}{$nrocomp}");
     return true;
 }
Beispiel #12
0
 function creadordpt($id_ordp)
 {
     $error = 0;
     $url = 'inventario/ordp/dataedit/show/' . $id_ordp;
     $this->rapyd->uri->keep_persistence();
     $persistence = $this->rapyd->session->get_persistence($url, $this->rapyd->uri->gfid);
     $back = isset($persistence['back_uri']) ? $persistence['back_uri'] : $url;
     $this->genesal = false;
     $mSQL = "INSERT IGNORE INTO caub (ubica,ubides,gasto) VALUES ('APRO','APARTADO DE PRODUCCION','N')";
     $this->db->simple_query($mSQL);
     $mSQL = "INSERT IGNORE INTO caub (ubica,ubides,gasto) VALUES ('PROD','ALMACEN DE PRODUCCION','S')";
     $this->db->simple_query($mSQL);
     $sel = array('a.fecha', 'a.almacen', 'a.numero', 'a.status', 'a.cana', 'a.codigo', 'b.descrip');
     $this->db->select($sel);
     $this->db->from('ordp AS a');
     $this->db->join('sinv AS b', 'a.codigo=b.codigo');
     $this->db->where('a.id', $id_ordp);
     $mSQL_1 = $this->db->get();
     if ($mSQL_1->num_rows() > 0) {
         $row = $mSQL_1->row();
         $codigo = $row->codigo;
         $cana = $row->cana;
         if ($row->status == 'C') {
             //Hace la transferencia de lo producido al almacen
             $_POST = array('btn_submit' => 'Guardar', 'envia' => 'PROD', 'fecha' => dbdate_to_human($row->fecha), 'recibe' => $row->almacen, 'observ1' => 'FIN ORDEN DE PROD. ' . $row->numero);
             $id = '1';
             $ind = 'codigo_' . $id;
             $_POST[$ind] = $codigo;
             $ind = 'descrip_' . $id;
             $_POST[$ind] = $row->descrip;
             $ind = 'cantidad_' . $id;
             $_POST[$ind] = $cana;
             $rt = $this->dataedit();
             if (strripos($rt, 'Guardada')) {
                 $data = array('status' => 'T');
                 $this->db->where('id', $id_ordp);
                 $this->db->update('ordp', $data);
             }
             //Calcula los costos
             $itcosto = 0;
             $sel = array('a.cantidad', 'a.costo', 'a.fijo');
             $this->db->select($sel);
             $this->db->from('ordpitem AS a');
             $this->db->join('sinv AS b', 'a.codigo=b.codigo');
             $this->db->where('a.id_ordp', $id_ordp);
             $mSQL_2 = $this->db->get();
             $ordpitem_row = $mSQL_2->result();
             foreach ($ordpitem_row as $itrow) {
                 $itcosto += $itrow->fijo == 'S' ? $itrow->costo : $itrow->costo * $itrow->cantidad;
             }
             $sel = array('a.porcentaje', 'a.tipo');
             $this->db->select($sel);
             $this->db->from('ordpindi AS a');
             $this->db->where('a.id_ordp', $id_ordp);
             $mSQL_4 = $this->db->get();
             $ordpindi_row = $mSQL_4->result();
             $costo = $itcosto;
             foreach ($ordpindi_row as $itrow) {
                 $costo += $itrow->tipo == 'M' ? $itrow->porcentaje / $cana : $itrow->porcentaje * $itcosto / 100;
             }
             $costo = round($costo, 2);
             $data = array('ultimo' => $costo, 'formcal' => 'U');
             $this->db->where('codigo', $codigo);
             $this->db->update('sinv', $data);
             $dbcodigo = $this->db->escape($codigo);
             $mSQL = "UPDATE sinv SET\n\t\t\t\tpond   = IF(existen IS NULL,{$costo},(existen*pond+{$costo}*{$cana})/(existen+{$cana})),\n\t\t\t\tbase1  = {$costo}*100/(100-margen1),\n\t\t\t\tbase2  = {$costo}*100/(100-margen2),\n\t\t\t\tbase3  = {$costo}*100/(100-margen3),\n\t\t\t\tbase4  = {$costo}*100/(100-margen4),\n\t\t\t\tprecio1= {$costo}*100*(1+(iva/100))/(100-margen1),\n\t\t\t\tprecio2= {$costo}*100*(1+(iva/100))/(100-margen2),\n\t\t\t\tprecio3= {$costo}*100*(1+(iva/100))/(100-margen3),\n\t\t\t\tprecio4= {$costo}*100*(1+(iva/100))/(100-margen4)\n\t\t\t\tWHERE codigo={$dbcodigo}";
             $ban = $this->db->simple_query($mSQL);
             if (!$ban) {
                 memowrite($mSQL, 'straordp');
                 $error++;
             }
             echo $rt . ' ' . anchor($back, 'regresar');
         } else {
             redirect($back);
         }
     } else {
         exit;
     }
 }
Beispiel #13
0
    function _pre_delete($do)
    {
        $tipo = $do->get('tipo');
        $transac = $do->get('transac');
        $numero = $do->get('numero');
        $almacen = $do->get('almacen');
        $dbtransac = $this->db->escape($transac);
        $dbnumero = $this->db->escape($numero);
        $dbalmacen = $this->db->escape($almacen);
        if ($tipo == 'C') {
            $do->error_message_ar['pre_del'] = 'La nota de entrega esta cerrada, no se puede anular';
            return false;
        }
        if ($tipo == 'A') {
            $do->error_message_ar['pre_del'] = 'La nota de entrega ya fue anulada en otro momento';
            return false;
        }
        if ($tipo == 'E') {
            $abonos = $this->datasis->dameval('SELECT abonos FROM smov WHERE transac=' . $dbtransac);
            if ($abonos > 0) {
                $do->error_message_ar['pre_del'] = 'La nota de debito relacionada a esta nota esta abonada, debe primero reversar el pago.';
                return false;
            }
            $mSQL = 'UPDATE sinv
			JOIN itsnte ON sinv.codigo=itsnte.codigo
			SET sinv.existen=sinv.existen+itsnte.cana
			WHERE itsnte.numero=' . $dbnumero;
            $ban = $this->db->simple_query($mSQL);
            if ($ban == false) {
                memowrite($mSQL, 'snte');
            }
            $mSQL = 'UPDATE itsinv
			JOIN itsnte ON itsinv.codigo=itsnte.codigo
			SET itsinv.existen=itsinv.existen+itsnte.cana
			WHERE itsnte.numero=' . $dbnumero . ' AND itsinv.alma=' . $dbalmacen;
            $ban = $this->db->simple_query($mSQL);
            if ($ban == false) {
                memowrite($mSQL, 'snte');
            }
            $mSQL = "UPDATE snte SET tipo='A' WHERE numero = {$dbnumero}";
            $ban = $this->db->simple_query($mSQL);
            if ($ban == false) {
                memowrite($mSQL, 'snte');
            }
            $do->error_message_ar['pre_del'] = 'La nota de entrega fue anulada';
            return false;
        }
        $do->error_message_ar['pre_del'] = 'Accion no valida';
        return false;
    }
Beispiel #14
0
 function _transferendep($fecha, $tarjeta, $tdebito, $cheque, $efectivo, $comision, $islr, $envia, $recibe, $moneda = 'Bs')
 {
     if ($monto <= 0) {
         return true;
     }
     $numero = $this->datasis->fprox_numero('nbcaj');
     $transac = $this->datasis->fprox_numero('ntransa');
     $numeroe = $this->datasis->banprox($envia);
     $numeror = $this->datasis->banprox($recibe);
     $sp_fecha = str_replace('-', '', $fecha);
     $error = 0;
     $this->bcajnumero = $numero;
     $mSQL = 'SELECT codbanc,numcuent,tbanco,banco,saldo FROM banc WHERE codbanc IN (' . $this->db->escape($envia) . ',' . $this->db->escape($recibe) . ')';
     $query = $this->db->query($mSQL);
     $infbanc = array();
     if ($query->num_rows() > 0) {
         foreach ($query->result() as $row) {
             $infbanc[$row->codbanc]['numcuent'] = $row->numcuent;
             $infbanc[$row->codbanc]['tbanco'] = $row->tbanco;
             $infbanc[$row->codbanc]['banco'] = $row->banco;
             $infbanc[$row->codbanc]['saldo'] = $row->banco;
         }
     }
     $monto = $tarjeta + $tdebito + $cheques - $comision - $islr;
     $data = array('tipo' => 'DE', 'fecha' => $fecha, 'numero' => $numero, 'transac' => $transac, 'usuario' => $this->session->userdata('usuario'), 'envia' => $edit->envia->newValue, 'tipoe' => 'ND', 'numeroe' => $numeroe, 'bancoe' => $infbanc[$envia]['banco'], 'recibe' => $edit->recibe->newValue, 'tipor' => 'DE', 'numeror' => $numeror, 'bancor' => $infbanc[$recibe]['banco'], 'concepto' => 'DEPOSITO ENTRE ' . $envia . ' A ' . $recibe, 'concep2' => '', 'benefi' => '', 'boleta' => '', 'precinto' => '', 'comprob' => '', 'totcant' => '', 'status' => '', 'deldia' => $fecha, 'tarjeta' => $edit->tarjeta->newValue, 'tdebito' => $edit->tdebito->newValue, 'cheques' => $edit->cheques->newValue, 'efectivo' => $edit->efectivo->newValue, 'comision' => $edit->comision->newValue, 'islr' => $edit->islr->newValue, 'monto' => $monto, 'estampa' => date('Ymd'), 'hora' => date('H:i:s'));
     $sql = $this->db->insert_string('bcaj', $data);
     $ban = $this->db->simple_query($sql);
     if ($ban == false) {
         memowrite($sql, 'bcaj');
         $error++;
     } else {
         $this->bcaj_id = $this->db->insert_id();
     }
     //Crea el egreso en el banco
     $this->datasis->actusal($envia, $sp_fecha, -1 * $monto);
     $data = array();
     $data['codbanc'] = $envia;
     $data['numcuent'] = $infbanc[$envia]['numcuent'];
     $data['banco'] = $infbanc[$envia]['banco'];
     $data['saldo'] = $infbanc[$envia]['saldo'];
     $data['tipo_op'] = 'ND';
     $data['numero'] = $numeroe;
     $data['fecha'] = $fecha;
     $data['clipro'] = 'O';
     $data['codcp'] = 'CAJAS';
     $data['monto'] = $monto;
     $data['concepto'] = 'DEPOSITO ENTRE CAJA ' . $envia . ' A ' . $recibe;
     $data['concep2'] = '';
     $data['transac'] = $transac;
     $data['usuario'] = $this->session->userdata('usuario');
     $data['estampa'] = date('Ymd');
     $data['hora'] = date('H:i:s');
     $data['benefi'] = '-';
     $data['moneda'] = $moneda;
     $sql = $this->db->insert_string('bmov', $data);
     $ban = $this->db->simple_query($sql);
     if ($ban == false) {
         memowrite($sql, 'bcaj');
         $error++;
     }
     //Crea el ingreso la otra caja
     $this->datasis->actusal($recibe, $sp_fecha, $monto);
     $data = array();
     $data['codbanc'] = $recibe;
     $data['numcuent'] = $infbanc[$recibe]['numcuent'];
     $data['banco'] = $infbanc[$recibe]['banco'];
     $data['saldo'] = $infbanc[$recibe]['saldo'];
     $data['tipo_op'] = 'DE';
     $data['numero'] = $numeror;
     $data['fecha'] = $fecha;
     $data['clipro'] = 'O';
     $data['codcp'] = 'CAJAS';
     $data['monto'] = $monto;
     $data['concepto'] = 'DEPOSITO ENTRE CAJA ' . $envia . ' A ' . $recibe;
     $data['concep2'] = '';
     $data['transac'] = $transac;
     $data['usuario'] = $this->session->userdata('usuario');
     $data['estampa'] = date('Ymd');
     $data['hora'] = date('H:i:s');
     $data['benefi'] = '-';
     $data['moneda'] = $moneda;
     $sql = $this->db->insert_string('bmov', $data);
     $ban = $this->db->simple_query($sql);
     if ($ban == false) {
         memowrite($sql, 'bcaj');
         $error++;
     }
     return $error == 0 ? true : false;
 }
Beispiel #15
0
 function _post_insert($do)
 {
     $codbanc = $do->get('codb1');
     $codprv = $do->get('proveed');
     $numero = $do->get('numero');
     $fecha = $do->get('fecha');
     $fechafac = $do->get('ffactura');
     $montasa = $do->get('montasa');
     $monredu = $do->get('monredu');
     $monadic = $do->get('monadic');
     $tasa = $do->get('tasa');
     $reducida = $do->get('reducida');
     $sobretasa = $do->get('sobretasa');
     $exento = $do->get('exento');
     $causado = $do->get('ncausado');
     $negreso = $do->get('negreso');
     $transac = $do->get('transac');
     $cheque = $do->get('cheque1');
     $monto1 = $do->get('monto1');
     $tipo1 = $do->get('tipo1');
     $codb1 = $do->get('codb1');
     $reiva = $do->get('reteiva');
     $reten = $do->get('reten');
     $nfiscal = $do->get('nfiscal');
     $tipo = $do->get('tipo_doc');
     $afecta = $do->get('afecta');
     $estampa = $do->get('estampa');
     $usuario = $do->get('usuario');
     $hora = $do->get('hora');
     $nombre = $do->get('nombre');
     $totiva = $do->get('totiva');
     $credito = $do->get('credito');
     $fondo = $do->get('fondo');
     $reteter = $do->get('reteter');
     $tercero = $do->get('tercero');
     $totbruto = $do->get('totbruto');
     $totneto = $do->get('totneto');
     $totcred = round($totneto - $monto1, 2);
     //Crea el movimiento para la retencion ISLR
     if ($reten > 0) {
         $mnsprm = $this->datasis->fprox_numero('num_nd');
         $control = $this->datasis->fprox_numero('nsprm');
         $data = array();
         $data['cod_prv'] = 'RETEN';
         $data['nombre'] = 'RETENCIONES POR ENTERAR';
         $data['tipo_doc'] = 'ND';
         $data['numero'] = $mnsprm;
         $data['fecha'] = $fecha;
         $data['monto'] = $reten;
         $data['impuesto'] = 0;
         $data['abonos'] = 0;
         $data['vence'] = $fecha;
         $data['tipo_ref'] = $tipo;
         $data['num_ref'] = $numero;
         $data['observa1'] = 'RET/I.S.L.R. CAUSADA EN';
         $data['observa2'] = 'FACTURA # ' . $numero . ' DE FECHA ' . $fechafac;
         $data['transac'] = $transac;
         $data['estampa'] = $estampa;
         $data['hora'] = $hora;
         $data['usuario'] = $usuario;
         $data['reteiva'] = 0;
         $data['montasa'] = 0;
         $data['monredu'] = 0;
         $data['monadic'] = 0;
         $data['tasa'] = 0;
         $data['reducida'] = 0;
         $data['sobretasa'] = 0;
         $data['exento'] = 0;
         $data['control'] = $control;
         $data['codigo'] = 'NOCON';
         $data['descrip'] = 'NOTA DE CONTABILIDAD';
         $sql = $this->db->insert_string('sprm', $data);
         $ban = $this->db->simple_query($sql);
         if ($ban == false) {
             memowrite($sql, 'gser');
         }
     }
     //Fin de la retencion ISLR
     //Crea el movimiento para la retencion de IVA
     if ($reiva > 0) {
         $mnsprm = $this->datasis->fprox_numero('num_nd');
         $control = $this->datasis->fprox_numero('nsprm');
         $data = array();
         $data['cod_prv'] = 'REIVA';
         $data['nombre'] = 'RETENCIONES POR ENTERAR';
         $data['tipo_doc'] = 'ND';
         $data['numero'] = $mnsprm;
         $data['fecha'] = $fecha;
         $data['monto'] = $reiva;
         $data['impuesto'] = 0;
         $data['abonos'] = 0;
         $data['vence'] = $fecha;
         $data['tipo_ref'] = $tipo;
         $data['num_ref'] = $numero;
         $data['observa1'] = 'RET/IVA CAUSADA EN';
         $data['observa2'] = 'FACTURA # ' . $numero . ' DE FECHA ' . $fechafac;
         $data['transac'] = $transac;
         $data['estampa'] = $estampa;
         $data['hora'] = $hora;
         $data['usuario'] = $usuario;
         $data['reteiva'] = 0;
         $data['montasa'] = 0;
         $data['monredu'] = 0;
         $data['monadic'] = 0;
         $data['tasa'] = 0;
         $data['reducida'] = 0;
         $data['sobretasa'] = 0;
         $data['exento'] = 0;
         $data['control'] = $control;
         $data['codigo'] = 'NOCON';
         $data['descrip'] = 'NOTA DE CONTABILIDAD';
         $sql = $this->db->insert_string('sprm', $data);
         $ban = $this->db->simple_query($sql);
         if ($ban == false) {
             memowrite($sql, 'gser');
         }
         // Si es por cuenta de tercero
         /*if ( $reteter > 0 && $tercero ){
         			if ( $reiva == $reteter ) hace la retencion a nombre del tercero
         				$this->_gserrete($fecha,$tipo,$fechafac,$numero,$nfiscal,$afecta,$tercero,$montasa,$monredu,$monadic,$tasa,$reducida,$sobretasa,$exento,$reteter,$transac);
         			else {
         				$this->_gserrete($fecha,$tipo,$fechafac,$numero,$nfiscal,$afecta,$codprv,$montasa,$monredu,$monadic,$tasa,$reducida,$sobretasa,$exento,$reiva-$reteter,$transac);
         			}
         		} else */
         $this->_gserrete($fecha, $tipo, $fechafac, $numero, $nfiscal, $afecta, $codprv, $montasa, $monredu, $monadic, $tasa, $reducida, $sobretasa, $exento, $reiva, $transac);
     }
     //Fin de la retencion de IVA
     //Crea el movimiento en banco del monto al contado
     if ($monto1 > 0.0) {
         $benefi = $do->get('benefi');
         $msj = "EGRESO AL CONTADO SEGUN FACTURA {$numero}";
         if ($tipo1 == 'D') {
             $tipo_op = 'ND';
         } else {
             $tipo_op = 'CH';
         }
         $this->_bmovgser($codbanc, $codprv, $codbanc, $negreso, $cheque, $fecha, $monto1, $benefi, $transac, $tipo_op, $msj);
     }
     //Fin del movimiento en el banco
     //Crea el movimiento en el fondo
     if ($fondo) {
         $benefi = 'FONDOS';
         $msj = "DESCARGO DEL FONDO SEGUN FACTURA {$numero}";
         $tipo_op = 'ND';
         $num = $this->datasis->banprox($row['fondo']);
         $this->_bmovgser($fondo, $codprv, $fondo, $negreso, $num, $fecha, $monto1, $benefi, $transac, $tipo_op, $msj);
         // Crea la NC en proveedores
         $control = $this->datasis->fprox_numero('nsprm');
         $nfondo = $this->datasis->dameval('SELECT banco FROM banc WHERE codbanc=' . $this->db->escape($fondo));
         $data = array();
         $data['cod_prv'] = $fondo;
         $data['nombre'] = $nfondo;
         $data['tipo_doc'] = 'NC';
         $data['numero'] = $numero;
         $data['fecha'] = $fecha;
         $data['monto'] = $totbruto;
         $data['impuesto'] = $totiva;
         $data['abonos'] = 0;
         $data['vence'] = $fecha;
         $data['observa1'] = '';
         $data['transac'] = $transac;
         $data['estampa'] = $estampa;
         $data['hora'] = $hora;
         $data['usuario'] = $usuario;
         $data['reteiva'] = $reiva;
         $data['reten'] = $reten;
         $data['montasa'] = $montasa;
         $data['monredu'] = $monredu;
         $data['monadic'] = $monadic;
         $data['tasa'] = $tasa;
         $data['reducida'] = $reducida;
         $data['sobretasa'] = $sobretasa;
         $data['exento'] = $exento;
         $data['control'] = $control;
         $sql = $this->db->insert_string('sprm', $data);
         $ban = $this->db->simple_query($sql);
         if ($ban == false) {
             memowrite($sql, 'gser');
         }
     }
     //Fin del movimiento en el banco
     //Crea la cuenta por pagar si es necesario
     if ($totcred > 0.0) {
         $causado = $this->datasis->fprox_numero('ncausado');
         $control = $this->datasis->fprox_numero('nsprm');
         $data = array();
         $data['cod_prv'] = $codprv;
         $data['nombre'] = $nombre;
         $data['tipo_doc'] = $tipo;
         $data['numero'] = $numero;
         $data['fecha'] = $fecha;
         $data['monto'] = $totbruto;
         $data['impuesto'] = $totiva;
         $data['abonos'] = $monto1 + $reten + $reiva;
         $data['vence'] = $fecha;
         $data['observa1'] = '';
         $data['transac'] = $transac;
         $data['estampa'] = $estampa;
         $data['hora'] = $hora;
         $data['usuario'] = $usuario;
         $data['reteiva'] = $reiva;
         $data['reten'] = $reten;
         $data['montasa'] = $montasa;
         $data['monredu'] = $monredu;
         $data['monadic'] = $monadic;
         $data['tasa'] = $tasa;
         $data['reducida'] = $reducida;
         $data['sobretasa'] = $sobretasa;
         $data['exento'] = $exento;
         $data['causado'] = $causado;
         $data['control'] = $control;
         $sql = $this->db->insert_string('sprm', $data);
         $ban = $this->db->simple_query($sql);
         if ($ban == false) {
             memowrite($sql, 'gser');
         }
         //Crea el abono si lo tiene
         if ($monto1 > 0) {
             $absprm = $this->datasis->fprox_numero('num_ab');
             $control = $this->datasis->fprox_numero('nsprm');
             $data = array();
             $data['cod_prv'] = $codprv;
             $data['nombre'] = $nombre;
             $data['tipo_doc'] = 'AB';
             $data['numero'] = $absprm;
             $data['fecha'] = $fecha;
             $data['monto'] = $monto1;
             $data['impuesto'] = 0;
             $data['abonos'] = $monto1;
             $data['vence'] = $fecha;
             $data['observa1'] = 'ABONA A ' . $tipo . $numero;
             $data['transac'] = $transac;
             $data['estampa'] = $estampa;
             $data['hora'] = $hora;
             $data['usuario'] = $usuario;
             $data['banco'] = $codb1;
             $data['tipo_op'] = $tipo1 == 'C' ? 'CH' : 'DE';
             $data['numche'] = $cheque;
             $data['reteiva'] = 0;
             $data['montasa'] = 0;
             $data['monredu'] = 0;
             $data['monadic'] = 0;
             $data['tasa'] = 0;
             $data['reducida'] = 0;
             $data['sobretasa'] = 0;
             $data['exento'] = 0;
             $data['control'] = $control;
             $sql = $this->db->insert_string('sprm', $data);
             $ban = $this->db->simple_query($sql);
             if ($ban == false) {
                 memowrite($sql, 'gser');
             }
             //Aplica el AB a la FC
             $itppro = array();
             $itppro['numppro'] = $absprm;
             $itppro['tipoppro'] = 'AB';
             $itppro['cod_prv'] = $codprv;
             $itppro['tipo_doc'] = 'FC';
             $itppro['numero'] = $numero;
             $itppro['fecha'] = $fecha;
             $itppro['monto'] = $monto1;
             $itppro['abono'] = $monto1;
             $itppro['ppago'] = 0;
             $itppro['reten'] = 0;
             $itppro['cambio'] = 0;
             $itppro['mora'] = 0;
             $itppro['transac'] = $transac;
             $itppro['estampa'] = $estampa;
             $itppro['hora'] = $hora;
             $itppro['usuario'] = $usuario;
             $itppro['preten'] = 0;
             $itppro['creten'] = 0;
             $itppro['breten'] = 0;
             $itppro['reteiva'] = 0;
             $mSQL = $this->db->insert_string('itppro', $itppro);
             $ban = $this->db->simple_query($mSQL);
             if (!$ban) {
                 memowrite($mSQL, 'gser');
                 $error++;
             }
         }
         //Fin de la creacion del abono
         //Si tiene retencion de IVA
         if ($reiva > 0) {
             $ncsprm = $this->datasis->fprox_numero('num_nc');
             $data = array();
             $data['cod_prv'] = $codprv;
             $data['nombre'] = $nombre;
             $data['tipo_doc'] = 'NC';
             $data['numero'] = $ncsprm;
             $data['fecha'] = $fecha;
             $data['monto'] = $reiva;
             $data['impuesto'] = 0;
             $data['tipo_ref'] = $tipo;
             $data['num_ref'] = $numero;
             $data['abonos'] = $reiva;
             $data['vence'] = $fecha;
             $data['observa1'] = 'RET/IVA CAUSADA EN';
             $data['observa2'] = 'FACTURA # ' . $numero . ' DE FECHA ' . $fechafac;
             $data['transac'] = $transac;
             $data['estampa'] = $estampa;
             $data['hora'] = $hora;
             $data['usuario'] = $usuario;
             $data['reteiva'] = 0;
             $data['montasa'] = 0;
             $data['monredu'] = 0;
             $data['monadic'] = 0;
             $data['tasa'] = 0;
             $data['reducida'] = 0;
             $data['sobretasa'] = 0;
             $data['exento'] = 0;
             $data['control'] = $control;
             $sql = $this->db->insert_string('sprm', $data);
             $ban = $this->db->simple_query($sql);
             if ($ban == false) {
                 memowrite($sql, 'gser');
             }
             //Aplica la NC a la FC
             $itppro = array();
             $itppro['numppro'] = $ncsprm;
             $itppro['tipoppro'] = 'NC';
             $itppro['cod_prv'] = $codprv;
             $itppro['tipo_doc'] = 'FC';
             $itppro['numero'] = $numero;
             $itppro['fecha'] = $fecha;
             $itppro['monto'] = $reiva;
             $itppro['abono'] = $reiva;
             $itppro['ppago'] = 0;
             $itppro['reten'] = 0;
             $itppro['cambio'] = 0;
             $itppro['mora'] = 0;
             $itppro['transac'] = $transac;
             $itppro['estampa'] = $estampa;
             $itppro['hora'] = $hora;
             $itppro['usuario'] = $usuario;
             $itppro['preten'] = 0;
             $itppro['creten'] = 0;
             $itppro['breten'] = 0;
             $itppro['reteiva'] = 0;
             $mSQL = $this->db->insert_string('itppro', $itppro);
             $ban = $this->db->simple_query($mSQL);
             if (!$ban) {
                 memowrite($mSQL, 'gser');
                 $error++;
             }
         }
         //Fin de la retencion de IVA
         //Si tiene ISLR
         if ($reten > 0) {
             $ncsprm = $this->datasis->fprox_numero('num_nc');
             $data = array();
             $data['cod_prv'] = $codprv;
             $data['nombre'] = $nombre;
             $data['tipo_doc'] = 'NC';
             $data['numero'] = $ncsprm;
             $data['fecha'] = $fecha;
             $data['monto'] = $reten;
             $data['impuesto'] = 0;
             $data['tipo_ref'] = $tipo;
             $data['num_ref'] = $numero;
             $data['abonos'] = $reten;
             $data['vence'] = $fecha;
             $data['observa1'] = 'RET/I.S.L.R. CAUSADA EN';
             $data['observa2'] = 'FACTURA # ' . $numero . ' DE FECHA ' . $fechafac;
             $data['transac'] = $transac;
             $data['estampa'] = $estampa;
             $data['hora'] = $hora;
             $data['usuario'] = $usuario;
             $data['reteiva'] = 0;
             $data['montasa'] = 0;
             $data['monredu'] = 0;
             $data['monadic'] = 0;
             $data['tasa'] = 0;
             $data['reducida'] = 0;
             $data['sobretasa'] = 0;
             $data['exento'] = 0;
             $data['control'] = $control;
             $sql = $this->db->insert_string('sprm', $data);
             $ban = $this->db->simple_query($sql);
             if ($ban == false) {
                 memowrite($sql, 'gser');
             }
             //Aplica la NC a la FC
             $itppro = array();
             $itppro['numppro'] = $ncsprm;
             $itppro['tipoppro'] = 'NC';
             $itppro['cod_prv'] = $codprv;
             $itppro['tipo_doc'] = 'FC';
             $itppro['numero'] = $numero;
             $itppro['fecha'] = $fecha;
             $itppro['monto'] = $reten;
             $itppro['abono'] = $reten;
             $itppro['ppago'] = 0;
             $itppro['reten'] = 0;
             $itppro['cambio'] = 0;
             $itppro['mora'] = 0;
             $itppro['transac'] = $transac;
             $itppro['estampa'] = $estampa;
             $itppro['hora'] = $hora;
             $itppro['usuario'] = $usuario;
             $itppro['preten'] = 0;
             $itppro['creten'] = 0;
             $itppro['breten'] = 0;
             $itppro['reteiva'] = 0;
             $mSQL = $this->db->insert_string('itppro', $itppro);
             $ban = $this->db->simple_query($mSQL);
             if (!$ban) {
                 memowrite($mSQL, 'gser');
                 $error++;
             }
         }
         //Fin de la retencion ISLR
     }
     //Fin de la cuenta por pagar
     logusu('gser', "Gasto {$numero} {$codprv} {$fecha} CREADO");
     return true;
 }
Beispiel #16
0
 function _post_insert($do)
 {
     $mnumant = $this->datasis->fprox_numero('nancli');
     $numero = $do->get('numero');
     $cod_cli = $do->get('cliente');
     $fecha = $do->get('fecha');
     $monto = $do->get('reserva');
     $transac = $do->get('transac');
     $usuario = $this->secu->usuario();
     $estampa = date('Y-m-d');
     $hora = date('H:i:s');
     $inmueble = $do->get('inmueble');
     $dbcod_cli = $this->db->escape($cod_cli);
     $nombre = $this->datasis->dameval("SELECT nombre FROM scli WHERE cliente={$dbcod_cli}");
     $data = array();
     $data['cod_cli'] = $cod_cli;
     $data['nombre'] = $nombre;
     $data['tipo_doc'] = 'AN';
     $data['numero'] = $mnumant;
     $data['fecha'] = $fecha;
     $data['monto'] = $monto;
     $data['impuesto'] = 0;
     $data['vence'] = $fecha;
     $data['tipo_ref'] = 'RS';
     $data['num_ref'] = $numero;
     $data['observa1'] = 'RESERVACION NRO. ' . $numero;
     $data['usuario'] = $usuario;
     $data['estampa'] = $estampa;
     $data['hora'] = $hora;
     $data['transac'] = $transac;
     $data['fecdoc'] = $fecha;
     $mSQL = $this->db->insert_string('smov', $data);
     $ban = $this->db->simple_query($mSQL);
     if ($ban == false) {
         memowrite($mSQL, 'edres');
     }
     $primary = implode(',', $do->pk);
     logusu($do->table, "Creo {$this->t**s} {$primary} ");
 }
Beispiel #17
0
 function _procesar($qfechai, $qfechaf, $generar = FALSE)
 {
     $error = FALSE;
     $DBbig = $this->load->database('default', TRUE);
     //$query=mysql_unbuffered_query($mSQL,$DBbig->conn_id);
     //while ($row = mysql_fetch_assoc($query)) {}
     if ($generar) {
         foreach ($generar as $modulo) {
             $query = $this->db->simple_query("DELETE FROM casi   WHERE fecha BETWEEN {$qfechai} AND {$qfechaf} AND origen='{$modulo}'");
             $query = $this->db->simple_query("DELETE FROM itcasi WHERE fecha BETWEEN {$qfechai} AND {$qfechaf} AND origen LIKE '{$modulo}%'");
             $mTABLA = $this->datasis->dameval("SELECT origen  FROM reglascont WHERE modulo='{$modulo}' AND regla=1 ");
             $mCONTROL = $this->datasis->dameval("SELECT control FROM reglascont WHERE modulo='{$modulo}' AND regla=1 ");
             if ($modulo == 'SCST') {
                 $mSQL = "SELECT a.{$mCONTROL} mgrupo FROM {$mTABLA} WHERE a.recep BETWEEN {$qfechai} AND {$qfechaf} GROUP BY a.{$mCONTROL}";
             } else {
                 $mSQL = "SELECT a.{$mCONTROL} mgrupo FROM {$mTABLA} WHERE a.fecha BETWEEN {$qfechai} AND {$qfechaf} GROUP BY a.{$mCONTROL}";
             }
             $query = mysql_unbuffered_query($mSQL, $DBbig->conn_id);
             while ($fila = mysql_fetch_assoc($query)) {
                 $aregla = $this->_hace_regla($modulo, $mCONTROL, $fila['mgrupo']);
                 foreach ($aregla['casi'] as $casi) {
                     $ejecasi = 'INSERT IGNORE INTO casi ( comprob, fecha, descrip, origen ) ' . $casi;
                     $ejec = $this->db->simple_query($ejecasi);
                     if ($ejec == FALSE) {
                         memowrite($ejecasi, 'generar');
                         $error = true;
                     }
                 }
                 foreach ($aregla['itcasi'] as $itcasi) {
                     $ejeitcasi = 'INSERT INTO itcasi (fecha, comprob, origen,  cuenta, referen, concepto, debe,  haber, sucursal, ccosto) ' . $itcasi;
                     $ejec = $this->db->simple_query($ejeitcasi);
                     if ($ejec == FALSE) {
                         memowrite($ejeitcasi, 'generar');
                         $error = true;
                     }
                 }
             }
             $this->_borra_huerfano();
             //Redondeo
             //$query=$this->db->query("SELECT comprob,sum(debe)-sum(haber) total, origen FROM itcasi WHERE (MID(comprob,1,2) IN ('VD','DV') OR MID(origen,1,4) IN ('SCOP','SCST')) AND fecha BETWEEN $qfechai AND $qfechaf GROUP BY comprob HAVING abs(total)>0 AND abs(total)<0.5");
             //foreach ($query->result_array() as $row){
             $mSQL = "SELECT comprob,sum(debe)-sum(haber) total, origen FROM itcasi WHERE (MID(comprob,1,2) IN ('VD','DV') OR MID(origen,1,4) IN ('SCOP','SCST')) AND fecha BETWEEN {$qfechai} AND {$qfechaf} GROUP BY comprob HAVING abs(total)>0 AND abs(total)<0.5";
             $query = mysql_unbuffered_query($mSQL, $DBbig->conn_id);
             while ($row = mysql_fetch_assoc($query)) {
                 //print_r($row);
                 $mCOMPROB = $row['comprob'];
                 $mORIGEN = $row['origen'];
                 $mTOTAL = $row['total'];
                 $this->db->simple_query("UPDATE itcasi SET haber=haber+{$mTOTAL} WHERE comprob='{$mCOMPROB}' AND origen='{$mORIGEN}' ORDER BY haber DESC LIMIT 1 ");
                 $this->db->simple_query("UPDATE casi SET debe=(SELECT sum(itcasi.debe) FROM itcasi WHERE casi.comprob=itcasi.comprob AND casi.comprob='{$mCOMPROB}' AND origen='{$mORIGEN}' GROUP BY itcasi.comprob) WHERE comprob='{$mCOMPROB}'");
                 $this->db->simple_query("UPDATE casi SET haber=(SELECT sum(itcasi.haber) FROM itcasi WHERE casi.comprob=itcasi.comprob AND casi.comprob='{$mCOMPROB}' AND origen='{$mORIGEN}' GROUP BY itcasi.comprob) WHERE comprob='{$mCOMPROB}' ");
                 $this->db->simple_query("UPDATE casi SET total=debe-haber WHERE comprob='{$mCOMPROB}' AND origen='{$mORIGEN}'");
             }
         }
         $lgenerar = "'" . implode("','", $generar) . "'";
         $mSQL = "SELECT comprob FROM itcasi WHERE fecha BETWEEN {$qfechai} AND {$qfechaf} GROUP BY comprob";
         //$query=$this->db->query($mSQL);
         //TOTALIZA EN ITCASI
         $query = mysql_unbuffered_query($mSQL, $DBbig->conn_id);
         while ($row = mysql_fetch_assoc($query)) {
             $usr = $this->session->userdata('usuario');
             $comprob = $this->db->escape($row['comprob']);
             $sql = "UPDATE casi\n\t\t\t\t\tSET debe=(SELECT sum(debe) FROM itcasi WHERE itcasi.comprob=casi.comprob),\n\t\t\t\t\thaber=(SELECT sum(haber) FROM itcasi WHERE itcasi.comprob=casi.comprob),\n\t\t\t\t\ttotal=(SELECT sum(debe)-sum(haber) FROM itcasi WHERE itcasi.comprob=casi.comprob),\n\t\t\t\t\testampa=NOW(),\n\t\t\t\t\tusuario='{$usr}',\n\t\t\t\t\thora=DATE_FORMAT(NOW(),'%H:%i:%s')\n\t\t\t\t\tWHERE comprob={$comprob} ";
             //$ejec=$this->db->simple_query($sql,array($row['comprob']));
             $ejec = $this->db->simple_query($sql);
             if ($ejec == FALSE) {
                 memowrite($sql, 'generar');
                 $error = true;
             }
         }
         if ($error) {
             $salida = utf8_encode('Hubo algunos errores en el proceso, se genero un centinela');
         } else {
             $descuadre = $this->datasis->dameval("SELECT COUNT(*) FROM casi WHERE fecha BETWEEN {$qfechai} AND {$qfechaf} AND total<>0");
             $salida = utf8_encode('Listo! Asientos descuadrados: ' . $descuadre);
         }
     } else {
         $salida = utf8_encode('Seleccione al menos un Modulo');
     }
     return $salida;
 }
Beispiel #18
0
 function _cargar($control)
 {
     $control = $this->db->escape($control);
     $lcontrol = $this->datasis->fprox_numero('nscst');
     $transac = $this->datasis->fprox_numero('ntransac');
     $farmaxDB = $this->load->database('farmax', TRUE);
     $farmaxdb = $farmaxDB->database;
     $localdb = $this->db->database;
     $retorna = '';
     $sql = "SELECT COUNT(*) AS cana \n\t\t  FROM {$farmaxdb}.itscst AS a \n\t\t  LEFT JOIN {$localdb}.sinv AS b ON a.codigo=b.codigo \n\t\t  LEFT JOIN {$localdb}.farmaxasig AS c ON a.codigo=c.barras AND c.proveed=a.proveed \n\t\tWHERE a.control={$control} AND b.codigo IS NULL AND c.abarras IS NULL";
     $query = $this->db->query($sql);
     if ($query->num_rows() > 0) {
         $row = $query->row_array();
         if ($row['cana'] == 0) {
             $query = $farmaxDB->query("SELECT * FROM scst WHERE control={$control} AND pcontrol IS NULL");
             if ($query->num_rows() == 1) {
                 $row = $query->row_array();
                 $row['control'] = $lcontrol;
                 $row['transac'] = $transac;
                 unset($row['pcontrol']);
                 $mSQL[] = $this->db->insert_string('scst', $row);
                 $itquery = $farmaxDB->query("SELECT * FROM itscst WHERE control={$control}");
                 foreach ($itquery->result_array() as $itrow) {
                     $itrow['control'] = $lcontrol;
                     unset($itrow['id']);
                     $mSQL[] = $this->db->insert_string('itscst', $itrow);
                 }
                 foreach ($mSQL as $sql) {
                     $rt = $this->db->simple_query($sql);
                     if (!$rt) {
                         memowrite('scstfarma', $sql);
                     }
                 }
                 $sql = "UPDATE scst SET pcontrol='{$lcontrol}' WHERE control={$control}";
                 $rt = $farmaxDB->simple_query($sql);
                 if (!$rt) {
                     memowrite('farmaejec', $sql);
                 }
                 $mSQL = "UPDATE \n\t\t\t\t\t  {$localdb}.itscst AS a\n\t\t\t\t\t  JOIN {$localdb}.farmaxasig AS b ON a.codigo=b.barras AND a.proveed=b.proveed\n\t\t\t\t\t  SET a.codigo=b.abarras\n\t\t\t\t\tWHERE a.control='{$lcontrol}'";
                 $rt = $this->db->simple_query($mSQL);
                 if (!$rt) {
                     memowrite('farmaejec1', $sql);
                 }
                 $retorna = 'Compra guardada con el control ' . anchor("compras/scst/dataedit/show/{$lcontrol}", $lcontrol);
             } else {
                 $retorna = "Al parecer la factura fue ya pasada";
             }
         } else {
             $retorna = "No se puede pasar porque hay productos que no existen en inventario";
         }
     } else {
         $retorna = "Error en la consulta";
     }
     return $retorna;
 }
Beispiel #19
0
 function _post_delete($do)
 {
     $primary = implode(',', $do->pk);
     $numero = $do->get('numero');
     $monto = $do->get('monto');
     $numero = $do->get('numero');
     $transac = $do->get('transac');
     $dbnumero = $this->db->escape($numero);
     $dbtransac = $this->db->escape($transac);
     $sql = "DELETE FROM sfpa WHERE transac={$dbtransac} AND numero={$dbnumero} AND tipo_doc='CC'";
     $ban = $this->db->simple_query($sql);
     if ($ban == false) {
         memowrite($sql, 'sfac');
     }
     logusu('sfpa', "Elimino Cambio de medio de pago por efectovo {$primary}, {$numero}, monto={$monto}");
 }
Beispiel #20
0
 function _traercajas($ip = NULL, $caja = FALSE, $cajero = FALSE, $fecha = FALSE)
 {
     error_reporting(0);
     $timestamp = timestampFromInputDate($fecha);
     $fecha = inputDateFromTimestamp($timestamp, 'Ymd');
     if (empty($ip)) {
         return false;
     }
     $tot = 0;
     ini_set('mysql.connect_timeout', '2');
     $link = mysql_connect($ip, 'datasis') or die('Maquina fuera de linea');
     mysql_select_db('datasis') or die('Base de datos no seleccionable');
     $check = true;
     $data = array('viefac' => 'fecha', 'viepag' => 'f_factura', 'vieite' => 'fecha');
     foreach ($data as $tabla => $fcampo) {
         $this->db->simple_query("DELETE FROM {$tabla} WHERE cajero='{$cajero}' AND caja='{$caja}' and {$fcampo}='{$fecha}'");
         $mSQL = "SELECT * FROM {$tabla} WHERE cajero='{$cajero}' AND caja='{$caja}' and {$fcampo}='{$fecha}'";
         $result = mysql_query($mSQL, $link);
         if (!$result) {
             $check = false;
             echo 'Consulta fallida' . mysql_error($link) . "\n";
         } else {
             $num_rows = mysql_num_rows($result);
             $tot += $num_rows;
             if ($num_rows > 0) {
                 while ($data = mysql_fetch_assoc($result)) {
                     $insert = $this->db->insert_string($tabla, $data);
                     if (!$this->db->simple_query($insert)) {
                         $check = false;
                         echo "Problemas en la insercion local\n";
                         memowrite($insert, 'straer');
                     }
                 }
             }
         }
     }
     if ($check) {
         echo "Fueron pasados {$tot} registros!";
     }
 }
Beispiel #21
0
 function exportunbufferzip($datas, $nomb = 'sqlinex', $add_encrip = NULL)
 {
     $nombre = tempnam("/tmp", $nomb);
     $handle = fopen($nombre, "w");
     //ON DUPLICATE KEY UPDATE `cedula`=IF(VALUES(`modifi`)>`modifi`,VALUES(`cedula`),`cedula`),`direc1`=IF(VALUES(`modifi`)>`modifi`,VALUES(`direc1`),`direc1`)
     foreach ($datas as $data) {
         if (isset($data['select']) and count($data['select']) > 0) {
             $this->ci->db->select($data['select']);
         }
         if (isset($data['where'])) {
             $this->ci->db->where($data['where'], NULL, FALSE);
         } else {
             $data['where'] = '';
         }
         if (isset($data['distinc']) and $data['distinc']) {
             $this->ci->db->distinct();
         }
         if (isset($data['join']) and is_array($data['join'])) {
             foreach ($data['join'] as $ddata) {
                 if (isset($ddata['side'])) {
                     $side = $ddata['side'];
                 } else {
                     $side = null;
                 }
                 $this->ci->db->join($ddata['table'], $ddata['on'], $side);
             }
         }
         if (isset($data['wherejoin'])) {
             $this->ci->db->where($data['wherejoin'], NULL, FALSE);
         }
         $this->ci->db->from($data['table']);
         $mSQL = $this->ci->db->_compile_select();
         //echo $mSQL;
         $this->ci->db->_reset_select();
         //$query = $this->ci->db->get();
         memowrite($mSQL);
         $query = mysql_unbuffered_query($mSQL, $this->ci->db->conn_id);
         if ($query !== false) {
             if ($this->limpiar) {
                 $mSQL = "DELETE FROM {$data['table']}";
                 if (!empty($data['where'])) {
                     $mSQL .= ' WHERE ' . $data['where'];
                 }
                 $mSQL .= "\n";
                 fwrite($handle, $mSQL);
             }
             while ($row = mysql_fetch_assoc($query)) {
                 $mSQL = $this->ci->db->insert_string($data['table'], $row);
                 if ($this->ignore) {
                     $mSQL = 'INSERT IGNORE ' . substr($mSQL, 6);
                 }
                 $mSQL .= "\n";
                 fwrite($handle, $mSQL);
             }
             mysql_free_result($query);
         }
     }
     fclose($handle);
     $firma = md5_file($nombre);
     $this->ci->load->library('encrypt');
     if (!empty($add_encrip)) {
         $firma = $add_encrip . $this->separador . $firma;
     }
     $firma = $this->ci->encrypt->encode($firma);
     $this->ci->load->library('zip');
     $this->ci->zip->add_data('firma.txt', $firma);
     $this->ci->zip->read_file($nombre);
     $this->ci->zip->download($nomb . '.zip');
     unlink($nombre);
 }
Beispiel #22
0
 function _pre_delete($do)
 {
     $codigo = $do->get('numero');
     $mSQL = 'UPDATE sinv JOIN itpfac ON sinv.codigo=itpfac.codigoa SET sinv.exdes=sinv.exdes-itpfac.cana WHERE itpfac.numa=' . $this->db->escape($codigo);
     $ban = $this->db->simple_query($mSQL);
     if ($ban == false) {
         memowrite($mSQL, 'pfac');
     }
     return true;
 }
Beispiel #23
0
 function _traermonventas($id = null)
 {
     if (is_null($id)) {
         return null;
     } else {
         $id = $this->db->escape($id);
     }
     $config = $this->datasis->damerow("SELECT proveed,grupo,puerto,proteo,url,usuario,clave,tipo,depo,margen1,margen2,margen3,margen4,margen5 FROM b2b_config WHERE id={$id}");
     if (count($config) == 0) {
         return null;
     }
     $er = 0;
     $this->load->helper('url');
     $server_url = reduce_double_slashes($config['url'] . '/' . $config['proteo'] . '/' . 'rpcserver');
     $this->load->library('xmlrpc');
     $this->xmlrpc->xmlrpc_defencoding = $this->config->item('charset');
     //$this->xmlrpc->set_debug(TRUE);
     $puerto = empty($config['puerto']) ? 80 : $config['puerto'];
     $this->xmlrpc->server($server_url, $puerto);
     $this->xmlrpc->method('montven');
     $fecha = date('Ymd');
     $request = array($fecha, '****');
     $this->xmlrpc->request($request);
     if (!$this->xmlrpc->send_request()) {
         memowrite($this->xmlrpc->display_error(), 'notifica');
         return null;
     } else {
         $res = $this->xmlrpc->display_response();
         return $res;
     }
     return null;
 }
Beispiel #24
0
 function request($tabla = '')
 {
     $page = $this->input->post('page');
     $limit = $this->input->post('rows');
     // get how many rows we want to have into the grid - rowNum parameter in the grid
     $sidx = $this->input->post('sidx');
     // get index row - i.e. user click to sort. At first time sortname parameter -after that the index from colModel
     $sord = $this->input->post('sord');
     $filtro = $this->input->post('filters');
     if ($filtro !== FALSE) {
         $filtro = json_decode($filtro);
         if ($filtro->groupOp == 'AND') {
             $glu = '';
         } else {
             $glu = 'or_';
         }
         foreach ($filtro->rules as $rule) {
             switch ($rule->op) {
                 case "eq":
                     //Igual a
                     $metodo = $glu . 'like';
                     $this->db->{$metodo}($rule->field, $rule->data);
                     break;
                 case "ne":
                     //No igual a
                     $metodo = $glu . 'where';
                     $this->db->{$metodo}($rule->field . ' <>', $rule->data);
                     break;
                 case "lt":
                     //Menor que
                     $metodo = $glu . 'where';
                     $this->db->{$metodo}($rule->field . ' <', $rule->data);
                     break;
                 case "le":
                     //Menor o igual
                     $metodo = $glu . 'where';
                     $this->db->{$metodo}($rule->field . ' <=', $rule->data);
                     break;
                 case "gt":
                     //Mayor que
                     $metodo = $glu . 'where';
                     $this->db->{$metodo}($rule->field . ' >', $rule->data);
                     break;
                 case "ge":
                     //Mayor o igual que
                     $metodo = $glu . 'like';
                     $this->db->{$metodo}($rule->field . ' >=', $rule->data);
                     break;
                 case "bw":
                     //Empieza por
                     $metodo = $glu . 'like';
                     $this->db->{$metodo}($rule->field, $rule->data, 'after');
                     break;
                 case "bn":
                     //No empieza por
                     $metodo = $glu . 'not_like';
                     $this->db->{$metodo}($rule->field, $rule->data, 'after');
                     break;
                 case "in":
                     //Esta en
                     $metodo = $glu . 'where_in';
                     $this->db->{$metodo}($rule->field, explode(',', $rule->data));
                     break;
                 case "ni":
                     //No esta en
                     $metodo = $glu . 'where_not_in';
                     $this->db->{$metodo}($rule->field, explode(',', $rule->data));
                     break;
                 case "ew":
                     //Termina por
                     $metodo = $glu . 'like';
                     $this->db->{$metodo}($rule->field, $rule->data, 'before');
                     break;
                 case "en":
                     //No termina por
                     $metodo = $glu . 'not_like';
                     $this->db->{$metodo}($rule->field, $rule->data);
                     break;
                 case "cn":
                     //Contiene
                     $metodo = $glu . 'like';
                     $this->db->{$metodo}($rule->field, $rule->data);
                     break;
                 case "nc":
                     //No contiene
                     $metodo = $glu . 'not_like';
                     $this->db->{$metodo}($rule->field, $rule->data);
                     break;
                 default:
                     $metodo = $glu . 'where';
                     $this->db->{$metodo}($rule->field . ' <=', $rule->data);
             }
         }
     }
     /*ob_start();
     		print_r($_REQUEST);
     		$ddata=ob_get_contents();
     		ob_end_clean();
     		memowrite($ddata);*/
     memowrite(http_build_query($_REQUEST));
     $this->db->from($tabla);
     if (!$sidx) {
         $sidx = 1;
     }
     // if we not pass at first time index use the first column for the index or what you want
     $mSQL = $this->db->_compile_select($this->db->_count_string . $this->db->_protect_identifiers('numrows'));
     $query = $this->db->query($mSQL);
     if ($query->num_rows() > 0) {
         $row = $query->row();
         $count = $row->numrows;
     } else {
         $count = 0;
     }
     if ($count > 0 && $limit > 0) {
         $total_pages = ceil($count / $limit);
     } else {
         $total_pages = 0;
     }
     if ($page > $total_pages) {
         $page = $total_pages;
     }
     $start = $limit * $page - $limit;
     if ($start < 0) {
         $start = 0;
     }
     $this->load->helper('xml');
     header("Content-type: text/xml;charset=" . $this->config->item('charset'));
     $s = "<?xml version='1.0' encoding='" . $this->config->item('charset') . "'?>";
     $s .= "<rows>";
     $s .= "<page>" . $page . "</page>";
     $s .= "<total>" . $total_pages . "</total>";
     $s .= "<records>" . $count . "</records>";
     $this->db->orderby($sidx, $sord);
     $this->db->limit($limit, $start);
     $query = $this->db->get();
     $campos = $this->db->field_data();
     foreach ($query->result() as $row) {
         $s .= "<row id='" . $row->{$id} . "'>";
         foreach ($campos as $campo) {
             $s .= "<cell>" . xml_convert($row->{$campo}->name) . "</cell>";
         }
         $s .= "</row>";
     }
     $s .= "</rows>";
     echo $s;
 }
Beispiel #25
0
 function _xlsread($arch = '', $tablaid = 1)
 {
     $tabla = $this->tabla;
     $mSQL = "DELETE FROM {$tabla} WHERE id_tabla=" . $tablaid;
     $this->db->simple_query($mSQL);
     $cana = $error = $c = $f = 0;
     $this->load->library('Spreadsheet_Excel_Reader');
     $this->spreadsheet_excel_reader->setOutputEncoding('CP1251');
     $this->spreadsheet_excel_reader->read($arch);
     //$hojas=count($this->spreadsheet_excel_reader->sheets);
     foreach ($this->spreadsheet_excel_reader->sheets[0]['cells'] as $row) {
         foreach ($row as $idr => $val) {
             $c = $idr - 1;
             if (!empty($val)) {
                 $data = array('id_tabla' => $tablaid, 'fila' => $f, 'columna' => $c, 'valor' => $val);
                 $mSQL = $this->db->insert_string($tabla, $data);
                 $ban = $this->db->simple_query($mSQL);
                 if (!$ban) {
                     memowrite($mSQL, 'extimpor');
                     $error++;
                 }
             }
         }
         $cana++;
         $f++;
     }
     if (file_exists($arch)) {
         unlink($arch);
     }
     if ($error > 0) {
         return 'Hubo algunos errores se generaron centinelas.';
     } else {
         return "Fueron cargadas {$cana} registro.";
     }
 }
Beispiel #26
0
 function _bmovgser($codbanc, $codprv, $cargo, $negreso, $cheque, $fecha, $totneto, $benefi, $transac)
 {
     $nombre = $this->datasis->dameval('SELECT nombre FROM sprv WHERE proveed=' . $this->db->escape($codprv));
     $datacar = common::_traebandata($cargo);
     $sp_fecha = str_replace('-', '', $fecha);
     $ttipo = $datacar['tbanco'];
     $tipo1 = $ttipo == 'CAJ' ? 'D' : 'C';
     $error = 0;
     $data = array();
     $data['codbanc'] = $cargo;
     $data['moneda'] = $datacar['moneda'];
     $data['numcuent'] = $datacar['numcuent'];
     $data['banco'] = $datacar['banco'];
     $data['saldo'] = $datacar['saldo'];
     $data['tipo_op'] = $ttipo == 'CAJ' ? 'ND' : 'CH';
     $data['numero'] = str_pad($cheque, 12, '0', STR_PAD_LEFT);
     $data['fecha'] = $fecha;
     $data['clipro'] = 'P';
     $data['codcp'] = $codprv;
     $data['nombre'] = $nombre;
     $data['monto'] = $totneto;
     $data['concepto'] = '';
     $data['benefi'] = $benefi;
     $data['posdata'] = '';
     $data['abanco'] = '';
     $data['liable'] = $ttipo == 'CAJ' ? 'S' : 'N';
     $data['transac'] = $transac;
     $data['usuario'] = $this->session->userdata('usuario');
     $data['estampa'] = date('Y-m-d');
     $data['hora'] = date('H:i:s');
     $data['anulado'] = 'N';
     $data['susti'] = '';
     $data['negreso'] = $negreso;
     /*$data['ndebito']    = '';
     		$data['ncausado']   = '';
     		$data['ncredito']   = '';*/
     $sql = $this->db->insert_string('bmov', $data);
     $ban = $this->db->simple_query($sql);
     if ($ban == false) {
         memowrite($sql, 'gser');
         $error++;
     }
     $sql = 'CALL sp_actusal(' . $this->db->escape($cargo) . ",'{$sp_fecha}',-{$totneto})";
     $ban = $this->db->simple_query($sql);
     if ($ban == false) {
         memowrite($sql, 'gser');
         $error++;
     }
     return $error == 0 ? true : false;
 }
Beispiel #27
0
 function _pre_delete($do)
 {
     $opttipo = $do->get('agente');
     $codigo = $do->get('numero');
     $almacen = $do->get('almacen');
     $tipo = $do->get('tipo');
     $fact = $opttipo == 'scli' ? 1 : -1;
     $mSQL = 'UPDATE sinv JOIN itpsinv ON sinv.codigo=itpsinv.codigo SET sinv.existen=sinv.existen+(' . $fact . ')*(itpsinv.cana) WHERE itpsinv.numero=' . $this->db->escape($codigo);
     $ban = $this->db->simple_query($mSQL);
     if ($ban == false) {
         memowrite($mSQL, 'psinv');
     }
     $mSQL = 'UPDATE itsinv JOIN itpsinv ON itsinv.codigo=itpsinv.codigo SET itsinv.existen=itsinv.existen+(' . $fact . ')(itpsinv.cana) WHERE itpsinv.numero=' . $this->db->escape($codigo) . ' AND itsinv.alma=' . $this->db->escape($almacen);
     $ban = $this->db->simple_query($mSQL);
     if ($ban == false) {
         memowrite($mSQL, 'psinv');
     }
     $codigo = $do->get('numero');
     logusu('psinv', "Prestamo de inventario {$codigo} ELIMINADO");
 }
Beispiel #28
0
 function _reversar($numero)
 {
     $dbnumero = $this->db->escape($numero);
     $mSQL = 'SELECT tipo, transac FROM rcaj WHERE numero=' . $dbnumero;
     $query = $this->db->query($mSQL);
     $er = 0;
     if ($query->num_rows() > 0) {
         $row = $query->row();
         if ($row->tipo == 'F') {
             //Reversa las ISLR
             $mmSQL = "SELECT a.monto,a.fecha,a.numero,a.transac\n\t\t\t\tFROM sfpa AS a\n\t\t\t\tJOIN rcaj AS b ON a.fecha=b.fecha AND a.cobrador=b.cajero\n\t\t\t\tWHERE b.numero={$dbnumero} AND a.tipo='IR'";
             $qquery = $this->db->query($mmSQL);
             foreach ($qquery->result() as $rrow) {
                 $this->db->where('cod_cli', 'RETEN');
                 $this->db->where('tipo_doc', 'ND');
                 $this->db->where('fecha', $rrow->fecha);
                 $this->db->where('transac', $rrow->transac);
                 $this->db->where('monto', $rrow->monto);
                 $this->db->delete('smov');
             }
             //Fin del reverso de las ISLR
             $transac = $row->transac;
             $dbtransac = $this->db->escape($transac);
             $sfecha = date('Ymd');
             //Reversa los movimientos de caja
             $mmSQL = 'SELECT codbanc,monto,tipo_op FROM bmov WHERE transac=' . $dbtransac;
             $qquery = $this->db->query($mmSQL);
             if ($qquery->num_rows() > 0) {
                 $rrow = $qquery->row();
                 $caja = $rrow->codbanc;
                 $monto = $rrow->tipo_op == 'NC' ? $rrow->monto : -1 * $rrow->monto;
                 $this->datasis->actusal($caja, $sfecha, $monto);
                 $er += $ban;
             }
             $mSQL = 'DELETE FROM bmov WHERE transac=' . $dbtransac;
             $ban = $this->db->query($mSQL);
             if ($ban == false) {
                 memowrite($mSQL, 'rcaj');
             }
             $er += $ban;
         }
         $mSQL = 'DELETE FROM rcaj   WHERE numero=' . $dbnumero;
         $ban = $this->db->query($mSQL);
         if ($ban == false) {
             memowrite($mSQL, 'rcaj');
         }
         $er += $ban;
         $mSQL = 'DELETE FROM itrcaj WHERE numero=' . $dbnumero;
         $ban = $this->db->query($mSQL);
         if ($ban == false) {
             memowrite($mSQL, 'rcaj');
         }
         $er += $ban;
         $mSQL = 'UPDATE rret SET cierre=NULL WHERE cierre=' . $dbnumero;
         $ban = $this->db->query($mSQL);
         if ($ban == false) {
             memowrite($mSQL, 'rcaj');
         }
         $er += $ban;
     }
     logusu('rcaj', "Reverso de cierre de caja numero {$numero}");
     return $er > 0 ? false : true;
 }
Beispiel #29
0
 function _post_insert($do)
 {
     $numero = $do->get('numero');
     $fecha = $do->get('fecha');
     $totneto = $do->get('totalg');
     $hora = $do->get('hora');
     $usuario = $do->get('usuario');
     $transac = $do->get('transac');
     $nombre = $do->get('nombre');
     $cod_cli = $do->get('cod_cli');
     $estampa = $do->get('estampa');
     $sprv = $do->get('sprv');
     $iva = $do->get('iva');
     $ref_numero = '00000000';
     $error = 0;
     //Inserta en smov
     $data = array();
     $data['cod_cli'] = $cod_cli;
     $data['nombre'] = $nombre;
     $data['tipo_doc'] = 'FC';
     $data['numero'] = $numero;
     $data['fecha'] = $fecha;
     $data['monto'] = $totneto;
     $data['impuesto'] = $iva;
     $data['abonos'] = 0;
     $data['vence'] = $fecha;
     $data['tipo_ref'] = 'FT';
     $data['num_ref'] = $sprv;
     $data['observa1'] = !empty($sprv) ? 'FACTURA P.CTA DE TERCERO ' . $sprv : 'FACTURA A CREDITO';
     $data['estampa'] = $estampa;
     $data['hora'] = $hora;
     $data['transac'] = $transac;
     $data['usuario'] = $usuario;
     $data['codigo'] = 'NOCON';
     $data['descrip'] = 'NOTA DE CONTABILIDAD';
     $sql = $this->db->insert_string('smov', $data);
     $ban = $this->db->simple_query($sql);
     if ($ban == false) {
         memowrite($sql, 'sfacter');
         $error++;
     }
     //Inserta en sprm
     if (!empty($sprv)) {
         $causado = $this->datasis->fprox_numero('ncausado');
         $sprvnobre = $this->datasis->dameval('SELECT nombre FROM sprv WHERE proveed=' . $this->db->escape($sprv));
         $mnumnc = $this->datasis->fprox_numero('num_nd');
         $data = array();
         $data['cod_prv'] = $sprv;
         $data['nombre'] = $sprvnobre;
         $data['tipo_doc'] = 'ND';
         $data['numero'] = $mnumnc;
         $data['fecha'] = $fecha;
         $data['monto'] = $totneto;
         $data['impuesto'] = 0;
         $data['abonos'] = 0;
         $data['vence'] = $fecha;
         $data['observa1'] = 'FACTURA P.CTA DE TERCERO ' . $cod_cli;
         $data['observa2'] = '';
         $data['tipo_ref'] = 'FT';
         $data['num_ref'] = $numero;
         $data['transac'] = $transac;
         $data['estampa'] = $estampa;
         $data['hora'] = $hora;
         $data['usuario'] = $usuario;
         $data['reteiva'] = 0;
         $data['montasa'] = 0;
         $data['monredu'] = 0;
         $data['monadic'] = 0;
         $data['tasa'] = 0;
         $data['reducida'] = 0;
         $data['sobretasa'] = 0;
         $data['exento'] = 0;
         $data['causado'] = $causado;
         $data['codigo'] = 'NOCON';
         $data['descrip'] = 'NOTA DE CONTABILIDAD';
         $sql = $this->db->insert_string('sprm', $data);
         $ban = $this->db->simple_query($sql);
         if ($ban == false) {
             memowrite($sql, 'sfacter');
             $error++;
         }
     }
     $primary = implode(',', $do->pk);
     logusu($do->table, "Creo {$this->t**s} {$primary} ");
 }
Beispiel #30
0
 function _post_update($do)
 {
     $id = $do->get('id');
     $mSQL = "UPDATE smov SET rcobro=NULL WHERE rcobro={$id}";
     $ban = $this->db->simple_query($mSQL);
     if ($ban == false) {
         memowrite($mSQL, 'rcobro');
     }
     $this->_post_inserup($do);
     $primary = implode(',', $do->pk);
     logusu($do->table, "Modifico {$this->t**s} {$primary} ");
 }