Foros del Web » Programando para Internet » PHP »

(Urgente) Típico Caso: Guardar Factura (PHP y MySQL)

Estas en el tema de (Urgente) Típico Caso: Guardar Factura (PHP y MySQL) en el foro de PHP en Foros del Web. Hola a Todos: Si, así como reza el titulo de este hilo, este es el tipico caso de la Factura, pero he tenido miles de ...
  #1 (permalink)  
Antiguo 30/11/2010, 15:30
 
Fecha de Ingreso: mayo-2010
Mensajes: 21
Antigüedad: 13 años, 11 meses
Puntos: 0
Exclamación (Urgente) Típico Caso: Guardar Factura (PHP y MySQL)

Hola a Todos:

Si, así como reza el titulo de este hilo, este es el tipico caso de la Factura, pero he tenido miles de problemas, no logro encontrar la logica para esto, me podrían echar una mano? La descripcion es la siguiente:

Tengo dos Tablas: Facturacion y Detalle_Factura (En MySQL), están constituidas de la siguiente manera (Echar un ojo al link):

[URL="http://img137.imageshack.us/i/diagrama1.jpg/"]http://img137.imageshack.us/i/diagrama1.jpg/[/URL]

En donde:

Tabla Facturacion:

#Id_Factura: PK y AUTO_INCREMENT (Distinto de Num_Factura, como tal)

Tabla Detalle_Factura:

#Cod_Detalle_Factura: PK y AUTO_INCREMENT
#ID_Factura_DF: PK

El Caso es este, tengo este formulario (Ver Imagen):

[URL="http://img137.imageshack.us/i/diagrama1.jpg/"]http://img153.imageshack.us/i/dibujowjd.jpg/[/URL]

Quiero que cuando le de en "Agregar Otro Item" automaticamente Viaje ese item por una Peticion AJAX, hecha a través de jQuery, dando a otro archivo que me almacenaría dicha consulta en una Transaccion (Toda la transaccion en un String), cuando se le dé en guardar, automaticamente me almacene todo.

Hay dos grandes inconvenientes con esto:

1. No podría obtener el Id Autoincremental de la Factura, ya que la transaccion no se ha ejecutado, por consiguiente, no podría ingresar el registro para el Detalle de la factura (Un producto), ya que carezco de su padre (El encabezado de la factura), osea, el codigo auto incremental.
2. No hay forma persistente de almacenar el String que tiene la transaccion, ya que cuando el archivo php externo que recibe los datos de la peticion Ajax termina de ejecutarse, todo se pierde, asi que no tendría sentido...

El codigo que tengo es este:

Código Javascript:
Ver original
  1. var haci = $("#cobHaci").val();
  2.          var idfact = $("#txtFact").val();
  3.          var fecha = $("#txtfecha").val();
  4.          var prov = $("#cobDist").val();
  5.          var prod = $("#cobProdu").val();
  6.          var pres = $("#cobPrese").val();
  7.          var cant = $("#txtCantProd").val();
  8.          var medida = $("#cobMedida").val();
  9.          var valunit = $("#txtValSinIva").val();
  10.          var iva = $("#txtIva").val();
  11.          var flete = $("#txtVlrFlete").val();
  12.          var partcost = $("#cobPartCost").val();
  13.         $.ajax({
  14.            type: "POST",
  15.            url: "GuardarFactura.php",
  16.            data: ({opcion: 'agregar', hacienda: haci, fechafact: fecha, proveedor: prov, insertarenc: insertarEnc, idfactura: idfact, producto: prod, presentacion: pres, cantidad: cant, medida: medida, valorunit: valunit, iva: iva, valorflete: flete, partecosto: partcost}),
  17.            success: function (data) {
  18.                $("#txtCantProd").val("");
  19.                $("#txtValSinIva").val("");
  20.                $("#txtIva").val("");
  21.                $("#txtVlrFlete").val("");
  22.                $("#cobProdu").val(0);
  23.                $("#cobPrese").val(0);
  24.                $("#cobMedida").val(0);
  25.                $("#cobPartCost").val(0);
  26.                insertarEnc = false;
  27.            }
  28.         });
  29.       });

El PHP que recibe esto no lo tengo terminado, a raíz del mismo problema.

Alguien podría echarme una mano? No he podido con esto Y lo requiero con muchisima urgencia.

De Antemano Muchas gracias
  #2 (permalink)  
Antiguo 01/12/2010, 05:56
Avatar de tersipodes  
Fecha de Ingreso: noviembre-2010
Mensajes: 23
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: (Urgente) Típico Caso: Guardar Factura (PHP y MySQL)

Hola Astantler,

Por lo que entiendo en lo que dices es que quieres ir llenando lineas de factura, hasta que la tengas completada y después introducirlo todo a una, no?. Lo mejor que podrias hacer es guardar toda la información en variables de sesión.

La primera vez que metas la información de la cabecera de la factura, lo guardas en variables de sesion y las lineas de pedido las introduces en un vector y después este en otra variable de sesión. De esta forma, la información no se perderá hasta que la introduzcas y tu mismo la liberes.

Si quieres te podría poner un pequeño ejemplo.
  #3 (permalink)  
Antiguo 01/12/2010, 15:34
 
Fecha de Ingreso: mayo-2010
Mensajes: 21
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: (Urgente) Típico Caso: Guardar Factura (PHP y MySQL)

Tersipodes:

Claro! Por que no lo había pensado antes! Me caería muy bien el ejemplo, la verdad, pero ya tengo una idea de como hacerlo...

De todas maneras, intentaré, y te agradezco por aclararme el panorama!
  #4 (permalink)  
Antiguo 02/12/2010, 05:35
Avatar de tersipodes  
Fecha de Ingreso: noviembre-2010
Mensajes: 23
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: (Urgente) Típico Caso: Guardar Factura (PHP y MySQL)

A ver, en tu form, deberías maquetar los datos de la cabecera de la factura tal que así:

Código HTML:
<input type="LoQueSea" value="<? echo $_SESSION['LoQueToque']; ?>"> 
Y en la parte en la que recibes los datos de todo el form para ir añadiendo filas, sería más o menos de la siguiente manera:

Código PHP:
$_SESSION['hacienda'] = $_POST['hacienda'];
$_SESSION['num_fact'] = $_POST['num_fact'];
$_SESSION['fecha'] = $_POST['fecha'];
$_SESSION['proveedor'] = $_POST['proveedor'];

$Array_producto $_SESSION['producto'];
$Array_presentacion $_SESSION['presentacion'];
$Array_cant_prod $_SESSION['cant_prod'];
$Array_cant_medida $_SESSION['cant_medida'];
$Array_medida $_SESSION['medida'];
$Array_valor $_SESSION['valor'];
$Array_IVA $_SESSION['IVA'];
$Array_flete $_SESSION['flete'];
$Array_costo $_SESSION['costo'];
$Array_finalidad $_SESSION['finalidad'];

$Array_producto[] = $_POST['producto'];
$Array_presentacion[] = $_POST['presentacion'];
$Array_cant_prod[] = $_POST['cant_prod'];
$Array_cant_medida[] = $_POST['cant_medida'];
$Array_medida[] = $_POST['medida'];
$Array_valor[] = $_POST['valor'];
$Array_IVA[] = $_POST['IVA'];
$Array_flete[] = $_POST['flete'];
$Array_costo[] = $_POST['costo'];
$Array_finalidad[] = $_POST['finalidad'];

$_SESSION['producto'] = $Array_producto;
$_SESSION['presentacion'] = $Array_presentacion;
$_SESSION['cant_prod'] = $Array_cant_prod;
$_SESSION['cant_medida'] = $Array_cant_medida;
$_SESSION['medida'] = $Array_medida;
$_SESSION['valor'] = $Array_valor;
$_SESSION['IVA'] = $Array_IVA;
$_SESSION['flete'] = $Array_flete;
$_SESSION['costo'] = $Array_costo;
$_SESSION['finalidad'] = $Array_finalidad
Espero que te sirva de ayuda el ejemplo.

Etiquetas: factura, php-mysql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 00:48.