el problema es que no funciona el script donde se despliega los nombres que esta en el onput type=text name=item; si pueden mirenlo a ver si me pueden colaborar con esto, les agradeceria mucho, los nombres se despliegan en el localhost, pero en el servidor no sirve,...porque?
Código:
<?php
//crear cotizacion
include("conexion.php");
include("seguridad.php");
session_start();
///aqui llamo y capturo el nombre del usuario o vendedor, para posteriormente en las lineas 402 y 407 insertarlas en la BD.
$vendedor=$_SESSION["sesion_usuario"];
/*
/////// IJO AQUI COMO UAS LAS CONDICIONES PARA CIERTO TIPO DE RESTRICCIONES
if($_SESSION['sesion_tipo']=="compras3" OR $_SESSION['sesion_tipo']=="compras4" OR $_SESSION['sesion_tipo']=="compras5"){
//redirecciona a version
echo "<script>alert('No tiene permisos para utilizar esta opcion!!');location.href='version.php'</script>";
}
//averigua si puede colocar facturas de años anteriores debido al corte
$año=date("Y")-1;
$consulta="SELECT * FROM ap_parametros WHERE nombre='bloquear_factura' AND valor='si'";
if(mysql_num_rows(mysql_query($consulta))>0){
$valido=1;
}
else{
$valido=0;
}
*/
//guarda las variables que se encuentran en post
foreach($_POST as $nombre_campo => $valor){
$asignacion = "\$" . $nombre_campo . "='" . $valor . "';";
eval($asignacion);
}
?>
<html>
<head>
<script>
function seleccionar2(){
if (typeof tamaño == "undefined"){
tamaño=0;
}
var c1,c2,c3,c4,c5,c6,numero;
var indice="OFF";
var iname=document.getElementById('item').value.toUpperCase();
var icode=document.getElementById('codigo').value.toUpperCase();
//valida que los valores no sean vacios
if ((iname!='') || (icode!='')){
//busca el elemento por item y con ese valor llena la tabla
if (iname!=''){
for (i=0;i<items.length;i++){
if (items[i]==iname){indice=i;
}
}
}
if (icode!=''){
for (i=0;i<codigos.length;i++){
if (codigos[i]==icode){
indice=i;
}
}
}
if (indice!="OFF"){
c1=codigos[indice];
c2=items[indice];
c3=unidades[indice];
c5=valores[indice];
c6=descuentos[indice];
//c6=subtotales[indice];
c4=0;
numero=tamaño;
tamaño++;
añadir2(c1,c2,c3,c4,c5,c6,numero);
}
document.getElementById('item').value='';
document.getElementById('codigo').value='';
}
}
function añadir2(c1,c2,c3,c4,c5,c6,numero){
//construir filas y celdas para cada nuevo valor agregado
var tabla;
var nuevafila;
var nuevacelda;
//busca la posicion del valor en el vector si selecciona un nombre
tabla=document.getElementById('tabla');
nuevafila= tabla.insertRow(1);
//celda codigo
nuevacelda=nuevafila.insertCell(0);
nuevacelda.innerHTML= "<input type='text' readonly name='code"+numero+"' value='"+c1+"'>";
//celda descripcion
nuevacelda=nuevafila.insertCell(1);
nuevacelda.innerHTML= "<input type='text' readonly name='name"+numero+"' class='largo' value='"+c2+"'>";
//celda unidad de medida
nuevacelda=nuevafila.insertCell(2);
nuevacelda.innerHTML= "<input type='text' readonly name='unidad"+numero+"' value='"+c3+"'>";
//celda cantidad
nuevacelda=nuevafila.insertCell(3);
nuevacelda.innerHTML= "<input type='text' name='cantidad"+numero+"' class='cero' style='background-color:yellow' title='ingrese el valor' value='0'>";
/////AQUI ES EN DONDE TENDRE QUE CONSULTAR EL VALOR QUE YA EXISTE DEL ARTICULO Y QUEZAS DESDE AQUI TENDRE QUE REALIZAR LA MISMA VUELTA QUE REALICE EN reprtestock4 para
////// CALCULAR EL VALOR DE PRECIO A LA VENTA Y REDONDEAR LA CIFRA. PERO CREO QUE DESDE AQUI NO DEBI REALIZAR DICHO CALCULO, ANALIZAR.
//celda costo unitario
/*
nuevacelda=nuevafila.insertCell(4);
nuevacelda.innerHTML= "<input type='text' name='valor"+numero+"' class='cero' style='background-color:yellow' title='ingrese el valor' value='0'>";
*/
nuevacelda=nuevafila.insertCell(4);
nuevacelda.innerHTML= "<input type='text' readonly name='valor"+numero+"' value='"+c5+"'>";
///
//celda descuentos
nuevacelda=nuevafila.insertCell(5);
nuevacelda.innerHTML= "<input type='text' name='descuento"+numero+"' class='cero' style='background-color:yellow' title='ingrese el valor' value='0.0000001'>";
/*
//celda subtotal
nuevacelda=nuevafila.insertCell(5);
nuevacelda.innerHTML= "<input type='text' readonly name='subtotal"+numero+"' value='"+c6+"'>";
*/
}
function validacion2(){
var valido=1;
var etiquetas;
var ban=0;
if (document.getElementById('numero').value==''){
valido=0;
alert('falta llenar el numero de cotizacion');
}
if(document.getElementById('fecha').value==''){
valido=0;
alert('falta llenar la fecha de la cotizacion');
}
//revisa elemento por elemento para que no haya cantidad ni valor unitario en cero
etiquetas=getElementsByClass('cero');
for(i=0;i<etiquetas.length;i++){
if(etiquetas[i].value==0 || etiquetas[i].value==""){
ban=1;
valido=0;}
}
if(ban==1) alert('los elementos de la cotizacion no pueden tener valores cero o vacios!!');
if(tamaño==0){
valido=0;
alert('no hay ningun elemento de la cotizacion');
}
if (valido==1){
//construye un campo donde envia el tamaño
document.getElementById("tamaño").value=tamaño;
document.factura.submit();
}
else {
}
}
</script>
</head>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<head>
<script language="javascript" src="funciones.js"></script>
<title>Crear Cotizacion</title>
<link href="estilos.css" rel="stylesheet" type="text/css" />
<style>
input.largo, th.largo {
width:300px;
}
</style>
<script language="javascript" src="autosuggest.js"></script>
</head>
<body>
<h1>Creación de la cotizacion</h1>
<script>
tamaño=0;
</script>
<?php ///rutina de añadir elemento....?>
<div id="autosuggest"><ul></ul></div>
<form method="post" name="selecciona">
Buscar por nombre:<input type="text" name="item" id="item" onKeyUp="this.value=this.value.toUpperCase();" size="65"/>
<script language="javascript">
var items = new Array();
var codigos= new Array();
var unidades=new Array();
var valores=new Array();
var descuentos=new Array();
//var subtotales=new Array();
<?php
//pasa todos los items desde la BD
include("conexion.php");
$consulta="SELECT * FROM ap_inventario";
$resultado=mysql_query($consulta);
$i=0;
while ($dato=mysql_fetch_array($resultado)){
echo "\n items[".$i."]='".$dato["item"]."';";
echo "\n codigos[".$i."]='".$dato["codigo"]."';";
echo "\n unidades[".$i."]='".$dato["unidad"]."';";
$consulta="SELECT IF( ((SELECT fecha1 FROM ap_ordencompra WHERE codigo = '".$dato["codigo"]."' AND fecha1 = ( SELECT MAX( fecha1 ) FROM ap_ordencompra WHERE codigo = '".$dato["codigo"]."' ))>LOCALTIME) AND
((SELECT valor FROM ap_ordencompra WHERE codigo='".$dato["codigo"]."' AND (fecha1=(SELECT MAX(fecha1) FROM ap_ordencompra WHERE codigo='".$dato["codigo"]."')))>(SELECT valor FROM ap_ingresos WHERE
codigo='".$dato["codigo"]."' AND fecha=(SELECT MAX(fecha) FROM ap_ingresos WHERE codigo='".$dato["codigo"]."'))),(SELECT valor FROM ap_ordencompra WHERE codigo = '".$dato["codigo"]."' AND fecha1 = ( SELECT MAX(
fecha1 ) FROM ap_ordencompra WHERE codigo = '".$dato["codigo"]."' )),(SELECT valor FROM ap_ingresos WHERE codigo = '".$dato["codigo"]."' AND fecha = ( SELECT MAX( fecha ) FROM ap_ingresos WHERE codigo
= '".$dato["codigo"]."' ))) AS valor";
$resultado1=mysql_query($consulta);
$valorcapturado=mysql_result($resultado1,0,"valor");
////*********while ($datos=mysql_fetch_array($resultado1)){
/////***************************
//////aqui miro si el valor capturado ya sea $ de ap_ordecompra ó $ de ap_ingresos , si alguno de ellos es mayor a cero entonces siga con la consulta
if($valorcapturado>0){
//////aqui calculo el precio a la venta; divido por 0.83 para generar un margen de ganacias del casi 20%
$valor[0]=($valorcapturado/0.83);
///tuve que quitar el 1.16, pues yasu me pidio qie en la cotizacion, en cada precio no me apareciera el iva incluido,solo que apareciera al final cerca al subtotal
///de todos los precios
///*1.16;
/////////aqui redondeo cada uno de los valores del vector:
$valor2[0]=round($valor[0],1);
echo "\n valores[".$i."]='".$valor2[0]."';";
////$i++;
}
////////////////////**********************************
//////aqui miro si el valor capturado ya sea $ de ap_ordecompra ó $ de ap_ingresos , si alguno de ellos es cero entonces me seleccione el valor de ap_inventario
if($valorcapturado==0){
//////esto lo hice para hacer una prueba, seria lo mismo de arriba pero con esto igualandolo a cero
///$datos['valor']=1;
/*
$consulta2="SELECT valor FROM ap_inventario WHERE codigo='".$valorcapturado."' ";
$resultado2=mysql_query($consulta2);
$valorcapturado_nuevo=mysql_result($resultado2,0,"valor");
*/
/////AQUI TRAIGO EL VALOR DE LA TABLA ap_inventario, DEL SELECT QUE SE REALIZO EN LA PARTE DE ARRIBA
$valor_inventario=$dato["codigo"] ;
///********while ($dat=mysql_fetch_array($resultado1)){
//////aqui calculo el precio a la venta; divido por 0.83 para generar un margen de ganacias del casi 20%
$valor[0]=($valor_inventario/0.83);
///tuve que quitar el 1.16, pues yasu me pidio qie en la cotizacion, en cada precio no me apareciera el iva incluido,solo que apareciera al final cerca al subtotal
///de todos los precios
///*1.16;
/////////aqui redondeo cada uno de los valores del vector:
$valor2[0]=round($valor[0],1);
echo "\n valores[".$i."]='".$valor2[0]."';";
/////$i++;
///**************}
}
///*******}
$i++;
}
////////////////////////////////////////
?>
new AutoSuggest(document.getElementById('item'),items);
</script>
Buscar por codigo:<input type="text" name="codigo" id="codigo" onKeyUp="this.value=this.value.toUpperCase();" />
<script language="javascript">
AutoSuggest(document.getElementById('codigo'),codigos);
</script>
<?php
////////AQUI INSERTO EL VALOR DEL PRECIO A LA VENTA DE CADA ARTICULO
///////////////////////////////////////////////////
/////////////////////aqui selecciono el valor mas reciente en fecha que haya ingresado
///$consulta="SELECT valor,codigo FROM ap_ingresos WHERE codigo='".$dato['codigo']."' AND fecha=(SELECT MAX(fecha) FROM ap_ingresos WHERE codigo='".$dato['codigo']."') ";
/////EN ESTA INSTRUCCION
//$valores= Array();
//$descuentos= Array();
?>
</br></br>
<input type="button" value="añadir elemento" onClick="seleccionar2();" />
</form>
<br />
<br />
<form method="post" name="factura" >
Nro. de la cotizacion: <input type="text" name="numero" id="numero" onKeyUp="this.value=this.value.toUpperCase();" size='30' maxlength='20'>
fecha de la cotizacion: <input name="fecha" id="fecha" size="11"><a href="javascript:void(0)" onclick="if(self.gfPop)gfPop.fPopCalendar(document.factura.fecha);return false;" ><img class="PopcalTrigger" align="absmiddle" src="calendario1/calbtn.gif" width="34" height="22" border="0" alt=""></a>
<iframe width="174" height="189" name="gToday:normal:agenda.js" id="gToday:normal:agenda.js" src="calendario1/ipopeng.htm" scrolling="no" frameborder="0" style="visibility:visible; z-index:999; position:absolute; top:-500px; left:-500px;">
</iframe>
cliente:<select name="cliente" id="cliente">
<?php
$consulta="SELECT * FROM ap_cliente ORDER BY cliente ASC";
$resultado=mysql_query($consulta);
while ($var=mysql_fetch_array($resultado)){
echo "<option>".$var["cliente"]."</option>";
}
?>
</select>
</br></br><div style="witdh:100%;height:2px;background-color: #FF0000"></div>
<h2>Elementos de la cotizacion:</h2>
<div id="espacio">
<table border="1px" id="tabla">
<thead>
<tr><th>Codigo</th><th class="largo">Descripción</th><th>Unidad</th><th>Cantidad</th><th>Valor Unitario</th><th>Descuento%</th></tr>
</thead>
<tbody>
</tbody>
</table>
</div>
<input type="hidden" name="tamaño" id="tamaño" value="">
<input type="button" value="limpiar tabla" onClick="destruir();">
<input type="button" value="guardar seleccion" onClick="validacion2();">
</form>
<?php
//rutina para guardar la cotizacion
if ($_POST['numero']!=""){
//si la cotizacion es repetida no la guarda
if(mysql_num_rows(mysql_query("SELECT * FROM ap_cotizacion WHERE id_factura='$numero'"))){
echo "<script>alert('Error: El numero de la cotizacion ya existe!!');location.href='cotizacion52.php'</script>";
}
/*
if(mysql_num_rows(mysql_query("SELECT * FROM ap_salidas WHERE id_factura='$numero'"))){
echo "<script>alert('Error: El numero de la cotizacion ya existe!!');location.href='cotizacion3.php'</script>";
}
*/
//si la opcion de bloquear facturas esta activada no es posible guardar facturas de años pasados
$año=date("Y");
$año2=substr($fecha,0,4);
if ($valido==0 AND $año2<$año){
echo "<script>alert('Error: No es posible guardar facturas de años pasados al actual');location.href='cotizacion52.php'</script>";
}
//realiza varias operaciones de upload de datos teniendo el tamaño del vector
for ($i=0;$i<$tamaño;$i++){
$asignacion = "\$codigo=\$code".$i.";";
eval($asignacion);
$asignacion = "\$cantidad=\$cantidad".$i.";";
eval($asignacion);
$asignacion = "\$valor=\$valor".$i.";";
eval($asignacion);
$asignacion = "\$descripcion=\$name".$i.";";
eval($asignacion);
$asignacion = "\$descuento=\$descuento".$i.";";
eval($asignacion);
///aqui llamo y capturo el nombre del usuario o vendedor, para posteriormente en las lineas 408 y 413 insertarlas en la BD.
$vendedor=$_SESSION["sesion_usuario"];
//$_POST['$valor']==$valor;
$consulta="INSERT INTO ap_cotizacion(id_factura,fecha,cliente,codigo,descripcion,cantidad,valor,descuento,vendedor) VALUES('$numero','$fecha','$cliente','$codigo','$descripcion','$cantidad','$valor','$descuento','$vendedor')";
$resultado=mysql_query($consulta);
$consulta="INSERT INTO ap_cotizacion_aux(id_factura,fecha,cliente,codigo,descripcion,cantidad,valor,descuento,vendedor) VALUES('$numero','$fecha','$cliente','$codigo','$descripcion','$cantidad','$valor','$descuento','$vendedor')";
$resultado=mysql_query($consulta);
}
echo "<script>alert('cotizacion guardada!!')</script>";
}
?>
<form name="form1" method="post" >
<input type="checkbox" name="cotizar" >vizualizar cotizacion<br>
<input type="submit" name="ok" value="GENERAR">
</form>
<?php
if ($ok == "GENERAR") {
if ( $cotizar == "on" ){
$captura_fecha="SELECT DISTINCT fecha FROM ap_cotizacion_aux WHERE vendedor='$vendedor' ";
$resultado_fecha=mysql_query($captura_fecha);
while ($row = mysql_fetch_array($resultado_fecha)){
$fecha_capturada=$row['fecha'];
}
$captura_cliente="SELECT DISTINCT cliente FROM ap_cotizacion_aux WHERE vendedor='$vendedor' ";
$resultado_cliente=mysql_query($captura_cliente);
while ($row = mysql_fetch_array($resultado_cliente)){
$cliente_capturado=$row['cliente'];
}
$captura_datos="SELECT * FROM ap_cliente WHERE cliente='$cliente_capturado' ";
$resultado_datos=mysql_query($captura_datos);
while ($row = mysql_fetch_array($resultado_datos)){
$direccion_obtenida=$row['direccion'];
$telefono_obtenido=$row['telefono'];
$nit_obtenido=$row['nit'];
}
$captura_datos="SELECT id_factura FROM ap_cotizacion_aux WHERE vendedor='$vendedor' ";
$resultado_datos=mysql_query($captura_datos);
while ($row = mysql_fetch_array($resultado_datos)){
$numero_obtenido=$row['id_factura'];
}
////aqui traigo el nombre del vendedor de esta session, para poder realizar la busqueda de articulos asociados a el dentro de la cotizacion_aux
$vendedor=$_SESSION["sesion_usuario"];
$resultado="SELECT * FROM ap_cotizacion_aux WHERE vendedor='$vendedor' ";
$resultado2=mysql_query($resultado);
// Se inicial el formulario
echo "<form name='procesar' method='post'> ";
$tabla="<table border='1px'><tr><thead><th colspan='2'><center><img src='http://www.ferreteriamacot.com/web/logo.png' width='100px' height='50'>
<hr width='50%'>Cra. 14 No. 20-16 / Tel 6711804 Bucaramanga</center></td><th colspan='4'><center>FERRETERIA MACOT S.A</center><center>NIT. 900.063.205-8</center></td></tr>";
///src='http://localhost/proyecto/logo.png'
/////http://www.ferreteriamacot.com/web/logo.png
//<td colspan='2' class='titulo'>
$tabla.=utf8_encode("<tr><th colspan='1'>Numero Cotizacion<td colspan='1'>".$numero_obtenido."<th colspan='4'>C O T I Z A C I O N");
$tabla.=utf8_encode("<tr><th colspan='1'>Vendedor<td colspan='1'>".$vendedor."");
$tabla.=utf8_encode("<tr><th colspan='1'>Fecha<td colspan='1'>".$fecha_capturada."");
$tabla.=utf8_encode("<tr><th colspan='1'>Cliente<td colspan='1'>".$cliente_capturado."");
$tabla.=utf8_encode("<tr><th colspan='1'>Nit<td colspan='1'>".$nit_obtenido."");
$tabla.=utf8_encode("<tr><th colspan='1'>Direccion<td colspan='1'>".$direccion_obtenida."");
$tabla.=utf8_encode("<tr><th colspan='1'>Telefono<td colspan='1'>".$telefono_obtenido."");
$tabla.="<tr><th>CODIGO<th>ARTICULO<th>DESCUENTO %<th>CANTIDAD<th>VALOR<th>V.TOTAL<tbody>";
//<thead>
// Extraemos y componemos los checbox dinámicos de los datos de nuestra tabla de la BD.
while ($row = mysql_fetch_array($resultado2)){
//////AQUI OY A MIRAR LO DEL DESCUENTO
$captura_descuento=$row['descuento'];
if($captura_descuento==0){
$precio_cotizacion=$row['valor'];
}
if($captura_descuento>0){
$descuento=(1-($row['descuento']/100 ));
$precio_cotizacion=$row['valor']*$descuento;
}
/////creo que el subtotal debo volverlo en un vector, osea me guarde los valores dentro de un vector $subtotal[$i]
$subtotal[$i]=$row['cantidad']*$precio_cotizacion;
$tabla.=utf8_encode("<tr><td>".$row['codigo']."<td>".$row['descripcion']."<td>".$row['descuento']."<td>".$row['cantidad']."<td>$".number_format($precio_cotizacion,0,',','.')."<td>$".number_format($subtotal[$i],0,',','.')."");
///$".number_format($costo[$j],0,',','.')."
///".$row['valor']."
////".$subtotal[$i]."
//$subtotal=$row['cantidad']*$row['valor'];
$i++;
}
////aqui se suman todos los subtotales
$suma=array_sum($subtotal);
///aqui voy a tener que modificar lo del total, pues ahora , el iva va incluido en el precio de cada uni de los articulos
///********
////aqui vuelvo a poner el iva de forma general y no individual, dinde el el na estaba siendo incluido en cada precio de cada articulo
$iva=$suma*0.16;
$total=$suma+$iva;
///**********
///$total=$suma;
/////////desde aqui sumo todos los valores que se habian guardado en le vector de los subtotales
$tabla.= utf8_encode("<tr><td><td><td><td><th>SUBTOTAL<th>$".number_format($suma,0,',','.')."");
///".$suma."
//$tabla.= utf8_encode("<tr><td><td><td><th>RETEFUENTE<th>");
///***
$tabla.= utf8_encode("<tr><td><td><td><td><th>IVA<th>$".number_format($iva,0,',','.')."");
///" .$iva. "
///***
$tabla.= utf8_encode("<tr><td><td><td><td><th>TOTAL<th>$".number_format($total,0,',','.')."");
////" .$total. "
//echo utf8_encode("<tr><td>total de la cotizacion<td>".$subtotal."");
//echo array_sum($subtotal);
$tabla.= "</table>";
echo $tabla;
echo "</form>";
$_SESSION['tabla']=$tabla;
unset($tabla);
echo "<a href='importaexcel.php'>Exportar a excel</a>";
echo "<br><a href='limpiar_cotizacion.php'>Limpiar hoja de cotizacion</a>";
};
};
//echo "</form>";
?>
</body>
</html>
//crear cotizacion
include("conexion.php");
include("seguridad.php");
session_start();
///aqui llamo y capturo el nombre del usuario o vendedor, para posteriormente en las lineas 402 y 407 insertarlas en la BD.
$vendedor=$_SESSION["sesion_usuario"];
/*
/////// IJO AQUI COMO UAS LAS CONDICIONES PARA CIERTO TIPO DE RESTRICCIONES
if($_SESSION['sesion_tipo']=="compras3" OR $_SESSION['sesion_tipo']=="compras4" OR $_SESSION['sesion_tipo']=="compras5"){
//redirecciona a version
echo "<script>alert('No tiene permisos para utilizar esta opcion!!');location.href='version.php'</script>";
}
//averigua si puede colocar facturas de años anteriores debido al corte
$año=date("Y")-1;
$consulta="SELECT * FROM ap_parametros WHERE nombre='bloquear_factura' AND valor='si'";
if(mysql_num_rows(mysql_query($consulta))>0){
$valido=1;
}
else{
$valido=0;
}
*/
//guarda las variables que se encuentran en post
foreach($_POST as $nombre_campo => $valor){
$asignacion = "\$" . $nombre_campo . "='" . $valor . "';";
eval($asignacion);
}
?>
<html>
<head>
<script>
function seleccionar2(){
if (typeof tamaño == "undefined"){
tamaño=0;
}
var c1,c2,c3,c4,c5,c6,numero;
var indice="OFF";
var iname=document.getElementById('item').value.toUpperCase();
var icode=document.getElementById('codigo').value.toUpperCase();
//valida que los valores no sean vacios
if ((iname!='') || (icode!='')){
//busca el elemento por item y con ese valor llena la tabla
if (iname!=''){
for (i=0;i<items.length;i++){
if (items[i]==iname){indice=i;
}
}
}
if (icode!=''){
for (i=0;i<codigos.length;i++){
if (codigos[i]==icode){
indice=i;
}
}
}
if (indice!="OFF"){
c1=codigos[indice];
c2=items[indice];
c3=unidades[indice];
c5=valores[indice];
c6=descuentos[indice];
//c6=subtotales[indice];
c4=0;
numero=tamaño;
tamaño++;
añadir2(c1,c2,c3,c4,c5,c6,numero);
}
document.getElementById('item').value='';
document.getElementById('codigo').value='';
}
}
function añadir2(c1,c2,c3,c4,c5,c6,numero){
//construir filas y celdas para cada nuevo valor agregado
var tabla;
var nuevafila;
var nuevacelda;
//busca la posicion del valor en el vector si selecciona un nombre
tabla=document.getElementById('tabla');
nuevafila= tabla.insertRow(1);
//celda codigo
nuevacelda=nuevafila.insertCell(0);
nuevacelda.innerHTML= "<input type='text' readonly name='code"+numero+"' value='"+c1+"'>";
//celda descripcion
nuevacelda=nuevafila.insertCell(1);
nuevacelda.innerHTML= "<input type='text' readonly name='name"+numero+"' class='largo' value='"+c2+"'>";
//celda unidad de medida
nuevacelda=nuevafila.insertCell(2);
nuevacelda.innerHTML= "<input type='text' readonly name='unidad"+numero+"' value='"+c3+"'>";
//celda cantidad
nuevacelda=nuevafila.insertCell(3);
nuevacelda.innerHTML= "<input type='text' name='cantidad"+numero+"' class='cero' style='background-color:yellow' title='ingrese el valor' value='0'>";
/////AQUI ES EN DONDE TENDRE QUE CONSULTAR EL VALOR QUE YA EXISTE DEL ARTICULO Y QUEZAS DESDE AQUI TENDRE QUE REALIZAR LA MISMA VUELTA QUE REALICE EN reprtestock4 para
////// CALCULAR EL VALOR DE PRECIO A LA VENTA Y REDONDEAR LA CIFRA. PERO CREO QUE DESDE AQUI NO DEBI REALIZAR DICHO CALCULO, ANALIZAR.
//celda costo unitario
/*
nuevacelda=nuevafila.insertCell(4);
nuevacelda.innerHTML= "<input type='text' name='valor"+numero+"' class='cero' style='background-color:yellow' title='ingrese el valor' value='0'>";
*/
nuevacelda=nuevafila.insertCell(4);
nuevacelda.innerHTML= "<input type='text' readonly name='valor"+numero+"' value='"+c5+"'>";
///
//celda descuentos
nuevacelda=nuevafila.insertCell(5);
nuevacelda.innerHTML= "<input type='text' name='descuento"+numero+"' class='cero' style='background-color:yellow' title='ingrese el valor' value='0.0000001'>";
/*
//celda subtotal
nuevacelda=nuevafila.insertCell(5);
nuevacelda.innerHTML= "<input type='text' readonly name='subtotal"+numero+"' value='"+c6+"'>";
*/
}
function validacion2(){
var valido=1;
var etiquetas;
var ban=0;
if (document.getElementById('numero').value==''){
valido=0;
alert('falta llenar el numero de cotizacion');
}
if(document.getElementById('fecha').value==''){
valido=0;
alert('falta llenar la fecha de la cotizacion');
}
//revisa elemento por elemento para que no haya cantidad ni valor unitario en cero
etiquetas=getElementsByClass('cero');
for(i=0;i<etiquetas.length;i++){
if(etiquetas[i].value==0 || etiquetas[i].value==""){
ban=1;
valido=0;}
}
if(ban==1) alert('los elementos de la cotizacion no pueden tener valores cero o vacios!!');
if(tamaño==0){
valido=0;
alert('no hay ningun elemento de la cotizacion');
}
if (valido==1){
//construye un campo donde envia el tamaño
document.getElementById("tamaño").value=tamaño;
document.factura.submit();
}
else {
}
}
</script>
</head>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<head>
<script language="javascript" src="funciones.js"></script>
<title>Crear Cotizacion</title>
<link href="estilos.css" rel="stylesheet" type="text/css" />
<style>
input.largo, th.largo {
width:300px;
}
</style>
<script language="javascript" src="autosuggest.js"></script>
</head>
<body>
<h1>Creación de la cotizacion</h1>
<script>
tamaño=0;
</script>
<?php ///rutina de añadir elemento....?>
<div id="autosuggest"><ul></ul></div>
<form method="post" name="selecciona">
Buscar por nombre:<input type="text" name="item" id="item" onKeyUp="this.value=this.value.toUpperCase();" size="65"/>
<script language="javascript">
var items = new Array();
var codigos= new Array();
var unidades=new Array();
var valores=new Array();
var descuentos=new Array();
//var subtotales=new Array();
<?php
//pasa todos los items desde la BD
include("conexion.php");
$consulta="SELECT * FROM ap_inventario";
$resultado=mysql_query($consulta);
$i=0;
while ($dato=mysql_fetch_array($resultado)){
echo "\n items[".$i."]='".$dato["item"]."';";
echo "\n codigos[".$i."]='".$dato["codigo"]."';";
echo "\n unidades[".$i."]='".$dato["unidad"]."';";
$consulta="SELECT IF( ((SELECT fecha1 FROM ap_ordencompra WHERE codigo = '".$dato["codigo"]."' AND fecha1 = ( SELECT MAX( fecha1 ) FROM ap_ordencompra WHERE codigo = '".$dato["codigo"]."' ))>LOCALTIME) AND
((SELECT valor FROM ap_ordencompra WHERE codigo='".$dato["codigo"]."' AND (fecha1=(SELECT MAX(fecha1) FROM ap_ordencompra WHERE codigo='".$dato["codigo"]."')))>(SELECT valor FROM ap_ingresos WHERE
codigo='".$dato["codigo"]."' AND fecha=(SELECT MAX(fecha) FROM ap_ingresos WHERE codigo='".$dato["codigo"]."'))),(SELECT valor FROM ap_ordencompra WHERE codigo = '".$dato["codigo"]."' AND fecha1 = ( SELECT MAX(
fecha1 ) FROM ap_ordencompra WHERE codigo = '".$dato["codigo"]."' )),(SELECT valor FROM ap_ingresos WHERE codigo = '".$dato["codigo"]."' AND fecha = ( SELECT MAX( fecha ) FROM ap_ingresos WHERE codigo
= '".$dato["codigo"]."' ))) AS valor";
$resultado1=mysql_query($consulta);
$valorcapturado=mysql_result($resultado1,0,"valor");
////*********while ($datos=mysql_fetch_array($resultado1)){
/////***************************
//////aqui miro si el valor capturado ya sea $ de ap_ordecompra ó $ de ap_ingresos , si alguno de ellos es mayor a cero entonces siga con la consulta
if($valorcapturado>0){
//////aqui calculo el precio a la venta; divido por 0.83 para generar un margen de ganacias del casi 20%
$valor[0]=($valorcapturado/0.83);
///tuve que quitar el 1.16, pues yasu me pidio qie en la cotizacion, en cada precio no me apareciera el iva incluido,solo que apareciera al final cerca al subtotal
///de todos los precios
///*1.16;
/////////aqui redondeo cada uno de los valores del vector:
$valor2[0]=round($valor[0],1);
echo "\n valores[".$i."]='".$valor2[0]."';";
////$i++;
}
////////////////////**********************************
//////aqui miro si el valor capturado ya sea $ de ap_ordecompra ó $ de ap_ingresos , si alguno de ellos es cero entonces me seleccione el valor de ap_inventario
if($valorcapturado==0){
//////esto lo hice para hacer una prueba, seria lo mismo de arriba pero con esto igualandolo a cero
///$datos['valor']=1;
/*
$consulta2="SELECT valor FROM ap_inventario WHERE codigo='".$valorcapturado."' ";
$resultado2=mysql_query($consulta2);
$valorcapturado_nuevo=mysql_result($resultado2,0,"valor");
*/
/////AQUI TRAIGO EL VALOR DE LA TABLA ap_inventario, DEL SELECT QUE SE REALIZO EN LA PARTE DE ARRIBA
$valor_inventario=$dato["codigo"] ;
///********while ($dat=mysql_fetch_array($resultado1)){
//////aqui calculo el precio a la venta; divido por 0.83 para generar un margen de ganacias del casi 20%
$valor[0]=($valor_inventario/0.83);
///tuve que quitar el 1.16, pues yasu me pidio qie en la cotizacion, en cada precio no me apareciera el iva incluido,solo que apareciera al final cerca al subtotal
///de todos los precios
///*1.16;
/////////aqui redondeo cada uno de los valores del vector:
$valor2[0]=round($valor[0],1);
echo "\n valores[".$i."]='".$valor2[0]."';";
/////$i++;
///**************}
}
///*******}
$i++;
}
////////////////////////////////////////
?>
new AutoSuggest(document.getElementById('item'),items);
</script>
Buscar por codigo:<input type="text" name="codigo" id="codigo" onKeyUp="this.value=this.value.toUpperCase();" />
<script language="javascript">
AutoSuggest(document.getElementById('codigo'),codigos);
</script>
<?php
////////AQUI INSERTO EL VALOR DEL PRECIO A LA VENTA DE CADA ARTICULO
///////////////////////////////////////////////////
/////////////////////aqui selecciono el valor mas reciente en fecha que haya ingresado
///$consulta="SELECT valor,codigo FROM ap_ingresos WHERE codigo='".$dato['codigo']."' AND fecha=(SELECT MAX(fecha) FROM ap_ingresos WHERE codigo='".$dato['codigo']."') ";
/////EN ESTA INSTRUCCION
//$valores= Array();
//$descuentos= Array();
?>
</br></br>
<input type="button" value="añadir elemento" onClick="seleccionar2();" />
</form>
<br />
<br />
<form method="post" name="factura" >
Nro. de la cotizacion: <input type="text" name="numero" id="numero" onKeyUp="this.value=this.value.toUpperCase();" size='30' maxlength='20'>
fecha de la cotizacion: <input name="fecha" id="fecha" size="11"><a href="javascript:void(0)" onclick="if(self.gfPop)gfPop.fPopCalendar(document.factura.fecha);return false;" ><img class="PopcalTrigger" align="absmiddle" src="calendario1/calbtn.gif" width="34" height="22" border="0" alt=""></a>
<iframe width="174" height="189" name="gToday:normal:agenda.js" id="gToday:normal:agenda.js" src="calendario1/ipopeng.htm" scrolling="no" frameborder="0" style="visibility:visible; z-index:999; position:absolute; top:-500px; left:-500px;">
</iframe>
cliente:<select name="cliente" id="cliente">
<?php
$consulta="SELECT * FROM ap_cliente ORDER BY cliente ASC";
$resultado=mysql_query($consulta);
while ($var=mysql_fetch_array($resultado)){
echo "<option>".$var["cliente"]."</option>";
}
?>
</select>
</br></br><div style="witdh:100%;height:2px;background-color: #FF0000"></div>
<h2>Elementos de la cotizacion:</h2>
<div id="espacio">
<table border="1px" id="tabla">
<thead>
<tr><th>Codigo</th><th class="largo">Descripción</th><th>Unidad</th><th>Cantidad</th><th>Valor Unitario</th><th>Descuento%</th></tr>
</thead>
<tbody>
</tbody>
</table>
</div>
<input type="hidden" name="tamaño" id="tamaño" value="">
<input type="button" value="limpiar tabla" onClick="destruir();">
<input type="button" value="guardar seleccion" onClick="validacion2();">
</form>
<?php
//rutina para guardar la cotizacion
if ($_POST['numero']!=""){
//si la cotizacion es repetida no la guarda
if(mysql_num_rows(mysql_query("SELECT * FROM ap_cotizacion WHERE id_factura='$numero'"))){
echo "<script>alert('Error: El numero de la cotizacion ya existe!!');location.href='cotizacion52.php'</script>";
}
/*
if(mysql_num_rows(mysql_query("SELECT * FROM ap_salidas WHERE id_factura='$numero'"))){
echo "<script>alert('Error: El numero de la cotizacion ya existe!!');location.href='cotizacion3.php'</script>";
}
*/
//si la opcion de bloquear facturas esta activada no es posible guardar facturas de años pasados
$año=date("Y");
$año2=substr($fecha,0,4);
if ($valido==0 AND $año2<$año){
echo "<script>alert('Error: No es posible guardar facturas de años pasados al actual');location.href='cotizacion52.php'</script>";
}
//realiza varias operaciones de upload de datos teniendo el tamaño del vector
for ($i=0;$i<$tamaño;$i++){
$asignacion = "\$codigo=\$code".$i.";";
eval($asignacion);
$asignacion = "\$cantidad=\$cantidad".$i.";";
eval($asignacion);
$asignacion = "\$valor=\$valor".$i.";";
eval($asignacion);
$asignacion = "\$descripcion=\$name".$i.";";
eval($asignacion);
$asignacion = "\$descuento=\$descuento".$i.";";
eval($asignacion);
///aqui llamo y capturo el nombre del usuario o vendedor, para posteriormente en las lineas 408 y 413 insertarlas en la BD.
$vendedor=$_SESSION["sesion_usuario"];
//$_POST['$valor']==$valor;
$consulta="INSERT INTO ap_cotizacion(id_factura,fecha,cliente,codigo,descripcion,cantidad,valor,descuento,vendedor) VALUES('$numero','$fecha','$cliente','$codigo','$descripcion','$cantidad','$valor','$descuento','$vendedor')";
$resultado=mysql_query($consulta);
$consulta="INSERT INTO ap_cotizacion_aux(id_factura,fecha,cliente,codigo,descripcion,cantidad,valor,descuento,vendedor) VALUES('$numero','$fecha','$cliente','$codigo','$descripcion','$cantidad','$valor','$descuento','$vendedor')";
$resultado=mysql_query($consulta);
}
echo "<script>alert('cotizacion guardada!!')</script>";
}
?>
<form name="form1" method="post" >
<input type="checkbox" name="cotizar" >vizualizar cotizacion<br>
<input type="submit" name="ok" value="GENERAR">
</form>
<?php
if ($ok == "GENERAR") {
if ( $cotizar == "on" ){
$captura_fecha="SELECT DISTINCT fecha FROM ap_cotizacion_aux WHERE vendedor='$vendedor' ";
$resultado_fecha=mysql_query($captura_fecha);
while ($row = mysql_fetch_array($resultado_fecha)){
$fecha_capturada=$row['fecha'];
}
$captura_cliente="SELECT DISTINCT cliente FROM ap_cotizacion_aux WHERE vendedor='$vendedor' ";
$resultado_cliente=mysql_query($captura_cliente);
while ($row = mysql_fetch_array($resultado_cliente)){
$cliente_capturado=$row['cliente'];
}
$captura_datos="SELECT * FROM ap_cliente WHERE cliente='$cliente_capturado' ";
$resultado_datos=mysql_query($captura_datos);
while ($row = mysql_fetch_array($resultado_datos)){
$direccion_obtenida=$row['direccion'];
$telefono_obtenido=$row['telefono'];
$nit_obtenido=$row['nit'];
}
$captura_datos="SELECT id_factura FROM ap_cotizacion_aux WHERE vendedor='$vendedor' ";
$resultado_datos=mysql_query($captura_datos);
while ($row = mysql_fetch_array($resultado_datos)){
$numero_obtenido=$row['id_factura'];
}
////aqui traigo el nombre del vendedor de esta session, para poder realizar la busqueda de articulos asociados a el dentro de la cotizacion_aux
$vendedor=$_SESSION["sesion_usuario"];
$resultado="SELECT * FROM ap_cotizacion_aux WHERE vendedor='$vendedor' ";
$resultado2=mysql_query($resultado);
// Se inicial el formulario
echo "<form name='procesar' method='post'> ";
$tabla="<table border='1px'><tr><thead><th colspan='2'><center><img src='http://www.ferreteriamacot.com/web/logo.png' width='100px' height='50'>
<hr width='50%'>Cra. 14 No. 20-16 / Tel 6711804 Bucaramanga</center></td><th colspan='4'><center>FERRETERIA MACOT S.A</center><center>NIT. 900.063.205-8</center></td></tr>";
///src='http://localhost/proyecto/logo.png'
/////http://www.ferreteriamacot.com/web/logo.png
//<td colspan='2' class='titulo'>
$tabla.=utf8_encode("<tr><th colspan='1'>Numero Cotizacion<td colspan='1'>".$numero_obtenido."<th colspan='4'>C O T I Z A C I O N");
$tabla.=utf8_encode("<tr><th colspan='1'>Vendedor<td colspan='1'>".$vendedor."");
$tabla.=utf8_encode("<tr><th colspan='1'>Fecha<td colspan='1'>".$fecha_capturada."");
$tabla.=utf8_encode("<tr><th colspan='1'>Cliente<td colspan='1'>".$cliente_capturado."");
$tabla.=utf8_encode("<tr><th colspan='1'>Nit<td colspan='1'>".$nit_obtenido."");
$tabla.=utf8_encode("<tr><th colspan='1'>Direccion<td colspan='1'>".$direccion_obtenida."");
$tabla.=utf8_encode("<tr><th colspan='1'>Telefono<td colspan='1'>".$telefono_obtenido."");
$tabla.="<tr><th>CODIGO<th>ARTICULO<th>DESCUENTO %<th>CANTIDAD<th>VALOR<th>V.TOTAL<tbody>";
//<thead>
// Extraemos y componemos los checbox dinámicos de los datos de nuestra tabla de la BD.
while ($row = mysql_fetch_array($resultado2)){
//////AQUI OY A MIRAR LO DEL DESCUENTO
$captura_descuento=$row['descuento'];
if($captura_descuento==0){
$precio_cotizacion=$row['valor'];
}
if($captura_descuento>0){
$descuento=(1-($row['descuento']/100 ));
$precio_cotizacion=$row['valor']*$descuento;
}
/////creo que el subtotal debo volverlo en un vector, osea me guarde los valores dentro de un vector $subtotal[$i]
$subtotal[$i]=$row['cantidad']*$precio_cotizacion;
$tabla.=utf8_encode("<tr><td>".$row['codigo']."<td>".$row['descripcion']."<td>".$row['descuento']."<td>".$row['cantidad']."<td>$".number_format($precio_cotizacion,0,',','.')."<td>$".number_format($subtotal[$i],0,',','.')."");
///$".number_format($costo[$j],0,',','.')."
///".$row['valor']."
////".$subtotal[$i]."
//$subtotal=$row['cantidad']*$row['valor'];
$i++;
}
////aqui se suman todos los subtotales
$suma=array_sum($subtotal);
///aqui voy a tener que modificar lo del total, pues ahora , el iva va incluido en el precio de cada uni de los articulos
///********
////aqui vuelvo a poner el iva de forma general y no individual, dinde el el na estaba siendo incluido en cada precio de cada articulo
$iva=$suma*0.16;
$total=$suma+$iva;
///**********
///$total=$suma;
/////////desde aqui sumo todos los valores que se habian guardado en le vector de los subtotales
$tabla.= utf8_encode("<tr><td><td><td><td><th>SUBTOTAL<th>$".number_format($suma,0,',','.')."");
///".$suma."
//$tabla.= utf8_encode("<tr><td><td><td><th>RETEFUENTE<th>");
///***
$tabla.= utf8_encode("<tr><td><td><td><td><th>IVA<th>$".number_format($iva,0,',','.')."");
///" .$iva. "
///***
$tabla.= utf8_encode("<tr><td><td><td><td><th>TOTAL<th>$".number_format($total,0,',','.')."");
////" .$total. "
//echo utf8_encode("<tr><td>total de la cotizacion<td>".$subtotal."");
//echo array_sum($subtotal);
$tabla.= "</table>";
echo $tabla;
echo "</form>";
$_SESSION['tabla']=$tabla;
unset($tabla);
echo "<a href='importaexcel.php'>Exportar a excel</a>";
echo "<br><a href='limpiar_cotizacion.php'>Limpiar hoja de cotizacion</a>";
};
};
//echo "</form>";
?>
</body>
</html>