function index($id = null) { if (is_null($id)) { redirect('concesionario/inicio'); } $this->rapyd->load('dataedit'); $iva = $this->datasis->ivaplica(); $sfpacana = 3; $sel = array('a.codigo_sinv', 'a.modelo', 'a.color', 'a.motor', 'a.carroceria', 'a.uso', 'a.anio', 'a.placa', 'b.iva', 'a.peso', 'a.precioplaca', 'a.transmision', 'b.precio1', 'b.precio2', 'b.precio3', 'b.precio4', 'b.descrip', 'a.clase', 'a.tipo'); $this->db->select($sel); $this->db->from('sinvehiculo AS a'); $this->db->join('sinv AS b', 'a.codigo_sinv=b.codigo'); $this->db->where('a.id', $id); //$this->db->where('a.id_sfac IS NULL'); $query = $this->db->get(); if ($query->num_rows() > 0) { $row = $query->row(); $iiva = $row->iva; $codigo_sinv = $row->codigo_sinv; $modelo = $row->modelo; $color = $row->color; $motor = $row->motor; $carroceria = $row->carroceria; $uso = $row->uso; $anio = $row->anio; $peso = $row->peso; $placa = $row->placa; $transmision = $row->transmision; $descrip = $row->descrip; $precioplaca = $row->precioplaca; $clase = $row->clase; $tipo = $row->tipo; $precio1 = round($row->precio1 * 100 / (100 + $iiva), 2) . ''; $precio2 = round($row->precio2 * 100 / (100 + $iiva), 2) . ''; $precio3 = round($row->precio3 * 100 / (100 + $iiva), 2) . ''; $precio4 = round($row->precio4 * 100 / (100 + $iiva), 2) . ''; } $sfpade = $sfpach = "<option value=''>Ninguno</option>"; $mSQL = "SELECT cod_banc,nomb_banc FROM tban WHERE cod_banc<>'CAJ'"; $query = $this->db->query($mSQL); foreach ($query->result() as $row) { $sfpach .= "<option value='" . trim($row->cod_banc) . "'>" . trim($row->nomb_banc) . "</option>"; } $mSQL = "SELECT codbanc AS cod_banc,CONCAT_WS(' ',TRIM(banco),numcuent) AS nomb_banc FROM banc WHERE tbanco <> 'CAJ' ORDER BY nomb_banc"; $query = $this->db->query($mSQL); foreach ($query->result() as $row) { $sfpade .= "<option value='" . trim($row->cod_banc) . "'>" . trim($row->nomb_banc) . "</option>"; } $jsc = ' function calcula(){ if($("#vh_precio").val().length>0) base=parseFloat($("#vh_precio").val()); else base=0; if($("#vh_tasa").val().length>0 ) tasa=parseFloat($("#vh_tasa").val()) ; else tasa=0; placa = Number($("#vh_precioplaca").val()); $("#vh_monto").text(nformat(base*(1+(tasa/100))+placa ,2)); $("#totalg").val(roundNumber(base*(1+(tasa/100))+placa ,2)); } function calculaiva(){ if($("#vh_tasa").val().length>0){ tasa=parseFloat($("#vh_tasa").val()); if($("#vh_montoiva").val().length>0) montoiva=parseFloat($("#montoiva").val()); else montoiva=0; $("#vh_base").val(roundNumber(montoiva*100/tasa,2)); } } function post_modbus_sinv(){ $("#descrip_0_val").text($("#descrip_0").val()); } function post_modbus_sprv(){ $("#nombre_val").text($("#nombre").val()); } //Totaliza el monto por pagar function apagar(nom){ var pago=0; jQuery.each($(\'input[id^="monto_"]:not(#\'+nom+\')\'), function() { pago+=Number($(this).val()); }); return pago; } //Determina lo que falta por pagar function faltante(nom){ totalg=Number($("#totalg").val()); paga = apagar(nom); resto = totalg-paga; return resto; } function saldo(forma){ var falta=faltante(forma.name); $(forma).val(falta); } '; $edit = new DataForm($this->url . 'venta/' . $id . '/insert'); $edit->back_url = site_url($this->url . 'filteredgrid'); $edit->cliente = new inputField('Cliente', 'cod_cli'); $edit->cliente->size = 6; $edit->cliente->autocomplete = false; $edit->cliente->rule = 'required|existescli'; //$edit->cliente->append($boton); $edit->cliente->group = 'Datos de la factura'; $edit->rifci = new freeField('Modelo', 'rif', '<span id="rifci_val"></span>'); $edit->rifci->group = 'Datos del vehículo'; $edit->rifci->in = 'cliente'; $edit->nombre = new inputField('Nombre', 'nombre'); $edit->nombre->size = 50; $edit->nombre->maxlength = 40; $edit->nombre->type = 'inputhidden'; $edit->nombre->group = 'Datos de la factura'; $edit->nombre->in = 'cliente'; $edit->almacen = new dropdownField('Almacén', 'almacen'); $edit->almacen->options('SELECT ubica,ubides FROM caub WHERE gasto="N" ORDER BY ubides'); $edit->almacen->rule = 'required'; $alma = $this->secu->getalmacen(); if (strlen($alma) <= 0) { $alma = $this->datasis->traevalor('ALMACEN'); } $edit->almacen->insertValue = $alma; $edit->almacen->style = 'width:200px;'; $edit->almacen->group = 'Datos de la factura'; $edit->vd = new dropdownField('Vendedor', 'vd'); $edit->vd->options('SELECT vendedor, CONCAT(vendedor,\' \',nombre) nombre FROM vend ORDER BY vendedor'); $edit->vd->style = 'width:200px;'; $edit->vd->insertValue = $this->secu->getvendedor(); $edit->vd->group = 'Datos de la factura'; $edit->codigo = new freeField('Modelo', 'codigo_0', $codigo_sinv); $edit->codigo->group = 'Datos del vehículo'; $edit->descrip = new freeField('Modelo', 'modelo', $modelo); $edit->descrip->group = 'Datos del vehículo'; $edit->descrip->in = 'codigo'; $edit->anio = new freeField('Año', 'vh_anio', $anio); $edit->anio->group = 'Datos del vehículo'; $edit->anio->in = 'codigo'; $edit->color = new freeField('Color', 'vh_color', $color); $edit->color->group = 'Datos del vehículo'; $edit->motor = new freeField('<b>Serial de Motor</b>', 'vh_motor', '<b style="font-size:1.5em">' . $motor . '</b>'); $edit->motor->group = 'Datos del vehículo'; $edit->carroceria = new freeField('<b>Serial de Carrocería</b>', 'vh_carroceria', '<b style="font-size:1.5em">' . $carroceria . '</b>'); $edit->carroceria->group = 'Datos del vehículo'; if ($uso == 'P') { $uso = 'Particular'; } elseif ($uso == 'C') { $uso = 'Carga'; } elseif ($uso == 'T') { $uso = 'Trabajo'; } $edit->uso = new freeField('Uso', 'vh_uso', $uso); $edit->uso->group = 'Datos del vehículo'; $edit->tipo = new freeField('Tipo', 'vh_tipo', $tipo); $edit->tipo->group = 'Datos del vehículo'; $edit->clase = new freeField('Clase', 'vh_clase', $clase); $edit->clase->group = 'Datos del vehículo'; $edit->transmision = new freeField('Transmisión', 'vh_transmision', $transmision); $edit->transmision->group = 'Datos del vehículo'; $edit->peso = new freeField('Peso Kg.', 'peso', nformat($peso)); $edit->peso->group = 'Datos del vehículo'; if (empty($placa)) { $edit->placa = new inputField('Placa', 'vh_placa'); //$edit->placa->rule = 'required'; $edit->placa->size = 10; $edit->placa->group = 'Datos del vehículo'; } else { $edit->placa = new freeField('Placa', 'vh_placa', $placa); $edit->placa->group = 'Datos del vehículo'; } $edit->precioplaca = new inputField('Precio placa', 'vh_precioplaca'); $edit->precioplaca->insertValue = $precioplaca; $edit->precioplaca->rule = 'required|mayorcero'; $edit->precioplaca->css_class = 'inputnum'; $edit->precioplaca->autocomplete = false; $edit->precioplaca->size = 10; //$edit->precioplaca = new freeField('Precio placa.','vh_precioplaca',nformat($precioplaca)); //$edit->precioplaca->group = 'Datos del financieros'; //$edit->precioplaca->showformat='decimal'; $edit->observa = new inputField('Observación', 'observa'); $edit->base = new dropdownField('Monto base de venta', 'vh_precio'); $edit->base->rule = 'required|numeric'; $edit->base->style = 'width:150px'; $edit->base->group = 'Datos del financieros'; $edit->base->option($precio1, nformat($precio1)); $edit->base->option($precio2, nformat($precio2)); $edit->base->option($precio3, nformat($precio3)); $edit->base->option($precio4, nformat($precio4)); $edit->tasa = new hiddenField('Tasa %', 'vh_tasa'); $edit->tasa->rule = 'required|numeric'; $edit->tasa->insertValue = $iva['tasa']; $edit->tasa->group = 'Datos del financieros'; $edit->ttasa = new freeField(' ', 'v_tasa', nformat($iva['tasa'])); $edit->ttasa->in = 'tasa'; $edit->precio = new freeField('<b>Monto a pagar</b>', 'monto', '<b id="vh_monto" style="font-size:2em">0.0</b>'); $edit->totalg = new hiddenField(' ', 'totalg'); $edit->totalg->insertValue = 0; $edit->totalg->in = 'precio'; for ($i = 0; $i < $sfpacana; $i++) { $o = $i + 1; $obj = "tipo_{$i}"; $edit->{$obj} = new dropdownField("{$o}-Tipo", $obj); $edit->{$obj}->option('', 'CREDITO'); $edit->{$obj}->options('SELECT tipo, nombre FROM tarjeta WHERE activo=\'S\' ORDER BY nombre'); $edit->{$obj}->db_name = 'tipo'; $edit->{$obj}->rel_id = 'sfpa'; $edit->{$obj}->insertValue = 'EF'; $edit->{$obj}->style = 'width:150px;'; $edit->{$obj}->onchange = "sfpatipo({$i})"; $edit->{$obj}->group = "<b style='font-size:1.5em'>Forma de pago {$o}|sfpa_{$i}"; $obj = "sfpafecha_{$i}"; $edit->{$obj} = new dateonlyField("{$o}-Fecha", $obj); $edit->{$obj}->rel_id = 'sfpa'; $edit->{$obj}->db_name = 'fecha'; $edit->{$obj}->size = 10; $edit->{$obj}->maxlength = 8; $edit->{$obj}->rule = "condi_required|callback_chtipo[{$i}]"; $edit->{$obj}->group = "<b style='font-size:1.5em'>Forma de pago {$o}|sfpa_{$i}"; $obj = "numref_{$i}"; $edit->{$obj} = new inputField("{$o}-Número", $obj); $edit->{$obj}->size = 12; $edit->{$obj}->db_name = 'num_ref'; $edit->{$obj}->rel_id = 'sfpa'; $edit->{$obj}->rule = "condi_required|callback_chtipo[{$i}]"; $edit->{$obj}->group = "<b style='font-size:1.5em'>Forma de pago {$o}|sfpa_{$i}"; $obj = "banco_{$i}"; $edit->{$obj} = new dropdownField("{$o}-Banco", $obj); $edit->{$obj}->option('', 'Ninguno'); $edit->{$obj}->db_name = 'banco'; $edit->{$obj}->rel_id = 'sfpa'; $edit->{$obj}->style = 'width:180px;'; $edit->{$obj}->rule = "condi_required|callback_chtipo[{$i}]"; $edit->{$obj}->group = "<b style='font-size:1.5em'>Forma de pago {$o}|sfpa_{$i}"; $edit->{$obj}->options('SELECT cod_banc,nomb_banc FROM tban WHERE cod_banc<>\'CAJ\' UNION ALL SELECT codbanc,CONCAT_WS(\' \',TRIM(banco),numcuent) FROM banc WHERE tbanco <> \'CAJ\' ORDER BY nomb_banc'); $obj = "monto_{$i}"; $edit->{$obj} = new inputField("{$o}-Monto", $obj); $edit->{$obj}->db_name = 'monto'; $edit->{$obj}->css_class = 'inputnum'; $edit->{$obj}->rel_id = 'sfpa'; $edit->{$obj}->size = 10; //$edit->$obj->rule = 'required|mayorcero'; $edit->{$obj}->insertValue = '0'; $edit->{$obj}->autocomplete = false; $edit->{$obj}->showformat = 'decimal'; $edit->{$obj}->onfocus = 'saldo(this);'; $edit->{$obj}->group = "<b style='font-size:1.5em'>Forma de pago {$o}|sfpa_{$i}"; } $accion = "javascript:window.location='" . site_url('concesionario/inicio') . "'"; $edit->button('btn_cargar', 'Regresar', $accion, 'BL'); $edit->submit('btnsubmit', 'Realizar venta'); $edit->build_form(); if ($edit->on_success()) { $this->genesal = false; $sel = array('a.rifci', 'a.dire11'); $this->db->select($sel); $this->db->from('scli AS a'); $this->db->where('a.cliente', $edit->cliente->newValue); //$this->db->where('a.id_sfac IS NULL'); $query = $this->db->get(); if ($query->num_rows() > 0) { $row = $query->row(); $rifci = $row->rifci; $dire11 = $row->dire11; } $descrip = $this->datasis->dameval("SELECT descrip FROM sinv WHERE codigo='PLACA'"); if (isset($_POST['vh_placa'])) { $dbplaca = $this->db->escape(strtoupper($_POST['vh_placa'])); $mSQL = "UPDATE sinvehiculo SET placa={$dbplaca} WHERE id=" . $this->db->escape($id); $this->db->simple_query($mSQL); } $precioplaca = $edit->precioplaca->newValue; $_POST['btn_submit'] = 'Guardar'; $_POST['pfac'] = ''; $_POST['fecha'] = date('d/m/Y'); $_POST['cajero'] = $this->secu->getcajero(); $_POST['vd'] = $edit->vd->newValue; $_POST['almacen'] = $edit->almacen->newValue; $_POST['tipo_doc'] = 'F'; $_POST['factura'] = ''; $_POST['cod_cli'] = $edit->cliente->newValue; $_POST['sclitipo'] = '1'; $_POST['nombre'] = $edit->nombre->newValue; $_POST['rifci'] = $rifci; $_POST['direc'] = $dire11; $_POST['referen'] = ''; $_POST['codigoa_0'] = 'PLACA'; $_POST['desca_0'] = empty($descrip) ? 'PLACA' : $descrip; //$_POST['detalle_0'] = 'PLACA '.$placa; $_POST['detalle_0'] = ''; $_POST['cana_0'] = 1; $_POST['preca_0'] = $precioplaca; $_POST['tota_0'] = $precioplaca; $_POST['precio1_0'] = $precioplaca; $_POST['precio2_0'] = $precioplaca; $_POST['precio3_0'] = $precioplaca; $_POST['precio4_0'] = $precioplaca; $_POST['itiva_0'] = 0; $_POST['sinvpeso_0'] = 0; $_POST['sinvtipo_0'] = 'Articulo'; $_POST['codigoa_1'] = $codigo_sinv; $_POST['desca_1'] = $modelo; $_POST['detalle_1'] = ''; $_POST['cana_1'] = 1; $_POST['preca_1'] = $edit->base->newValue; $_POST['tota_1'] = $edit->base->newValue; $_POST['precio1_1'] = $precio1; $_POST['precio2_1'] = $precio2; $_POST['precio3_1'] = $precio3; $_POST['precio4_1'] = $precio4; $_POST['itiva_1'] = $edit->tasa->newValue; $_POST['sinvpeso_1'] = $peso; $_POST['sinvtipo_1'] = 'Articulo'; $totals = $precioplaca + $edit->base->newValue; $iva = $edit->base->newValue * ($edit->tasa->newValue / 100); $totalg = $totals + $iva; for ($i = 0; $i < $sfpacana; $i++) { if ($_POST['monto_' . $i] == 0) { unset($_POST['tipo_' . $i]); unset($_POST['tipo_' . $i]); unset($_POST['sfpafecha_' . $i]); unset($_POST['num_ref_' . $i]); unset($_POST['banco_' . $i]); unset($_POST['monto_' . $i]); } } $_POST['totals'] = $totals; $_POST['iva'] = $iva; $_POST['totalg'] = $totalg; ob_start(); $this->dataedit(); $rt = ob_get_contents(); @ob_end_clean(); $ret = json_decode($rt); if ($ret->status == 'A') { $data = array(); $data['id_sfac'] = $ret->pk->id; $mSQL = $this->db->update_string('sinvehiculo', $data, 'id=' . $this->db->escape($id)); $this->db->simple_query($mSQL); redirect($this->url . 'ddataprint/modify/' . $data['id_sfac']); return; } else { $edit->error_string = htmlentities(utf8_decode($ret->mensaje)); $edit->build_form(); } } $script = '<script type="text/javascript" > $(function() { $(".inputnum").numeric("."); $(".inputonlynum").numeric(); $("#vh_tasa").change(function(){ calcula(); }); $("#vh_precio").change(function(){ calcula(); }); $("#vh_precioplaca").bind("keyup",function() { calcula(); }); //$("#vh_montoiva").bind("keyup",function() { calculaiva(); }); calcula(); $("#cod_cli").autocomplete({ source: function( req, add){ $.ajax({ url: "' . site_url('ajax/buscascli') . '", type: "POST", dataType: "json", data: "q="+req.term, success: function(data){ var sugiere = []; if(data.length==0){ $("#cod_cli").val(""); $("#nombre").val(""); $("#nombre_val").text(""); $("#rifci_val").text(""); }else{ $.each(data, function(i, val){ sugiere.push( val ); } ); } add(sugiere); }, }) }, minLength: 2, select: function( event, ui ) { $("#cod_cli").attr("readonly", "readonly"); $("#nombre").val(ui.item.nombre); $("#nombre_val").text(ui.item.nombre); $("#rifci_val").text(ui.item.rifci); $("#cod_cli").val(ui.item.cod_cli); setTimeout(function() { $("#cod_cli").removeAttr("readonly"); }, 1500); } }); }); ' . $jsc . ' function sfpatipo(id){ id = id.toString(); tipo = $("#tipo_"+id).val(); sfpade = ' . $edit->js_escape($sfpade) . '; sfpach = ' . $edit->js_escape($sfpach) . '; banco = $("#banco_"+id).val(); if(tipo==\'DE\' || tipo==\'NC\' || tipo==\'DP\'){ $("#banco_"+id).html(sfpade); }else{ $("#banco_"+id).html(sfpach); } $("#banco_"+id).val(banco); return true; } </script>'; $data['content'] = $edit->output; $data['script'] = script('jquery.js'); $data['script'] .= script('jquery-ui.js'); $data['script'] .= script('plugins/jquery.numeric.pack.js'); $data['script'] .= script('plugins/jquery.floatnumber.js'); $data['script'] .= script('plugins/jquery.ui.autocomplete.autoSelectOne.js'); $data['script'] .= phpscript('nformat.js'); $data['head'] = $this->rapyd->get_head(); $data['head'] .= style('redmond/jquery-ui-1.8.1.custom.css'); //$data['script'] = script('jquery.js').script('plugins/jquery.numeric.pack.js').script('plugins/jquery.floatnumber.js').phpscript('nformat.js'); $data['script'] .= $script; $data['title'] = heading($this->t**s); $this->load->view('view_ventanas', $data); }