DELIMITER // CREATE PROCEDURE InsertarDatos( IN p_codigo VARCHAR(255), IN p_familia_descripcion VARCHAR(45), IN p_nombre VARCHAR(500), IN p_marca VARCHAR(100), IN p_descrip VARCHAR(500), IN p_costo_compra FLOAT(12,2), IN p_precio_venta DECIMAL(12,2), IN p_stock FLOAT(12,2), IN p_saldo_iniu FLOAT(12,2), IN p_valor_iniu FLOAT(12,2), IN p_tipoitem VARCHAR(50), IN p_codigott VARCHAR(50), IN p_desctt VARCHAR(50), IN p_codigointtt VARCHAR(50), IN p_nombrett VARCHAR(50), IN p_nombre_almacen VARCHAR(45), IN p_valor_finu FLOAT(12,2) ) BEGIN DECLARE fam_id INT; DECLARE alm_id INT; -- Insertar en familia si no existe, o recuperar ID si existe INSERT INTO familia (descripcion, estado) VALUES (p_familia_descripcion, 1) ON DUPLICATE KEY UPDATE idfamilia=LAST_INSERT_ID(idfamilia), descripcion=p_familia_descripcion; SET fam_id = LAST_INSERT_ID(); -- Insertar en almacén si no existe, o recuperar ID si existe INSERT INTO almacen (nombre, estado) VALUES (p_nombre_almacen, 1) ON DUPLICATE KEY UPDATE idalmacen=LAST_INSERT_ID(idalmacen), nombre=p_nombre_almacen; SET alm_id = LAST_INSERT_ID(); -- Insertar en articulo INSERT INTO articulo ( idalmacen, codigo, nombre, idfamilia, unidad_medida, costo_compra, saldo_iniu, valor_iniu, stock, precio_venta, estado, codigott, desctt, codigointtt, nombrett, marca, descrip, fecharegistro, tipoitem, umedidacompra, factorc, fechafabricacion, fechavencimiento, fechaingalm, fechafinalma, proveedor, limitestock, lote, procedencia, fabricante, registrosanitario, codigo_proveedor, seriefaccompra, numerofaccompra, fechafacturacompra, saldo_finu, valor_finu, comprast, ventast, portador, merma, imagen, valor_fin_kardex, precio_final_kardex, codigosunat, ccontable, precio2, precio3, costofinal, cicbper, nticbperi, ctticbperi, mticbperu ) VALUES ( alm_id, p_codigo, p_nombre, fam_id, 58, p_costo_compra, p_saldo_iniu, p_valor_iniu, p_stock, p_precio_venta, 1, p_codigott, p_desctt, p_codigointtt, p_nombrett, p_marca, p_descrip, NOW(), p_tipoitem, 58, 1.00, '0000-00-00', '0000-00-00', '0000-00-00', '0000-00-00', '', '0.00', '', '', '', '', '-', '', '', '0000-00-00', p_valor_finu, 0.00, 0.00, 0.00, 0.00, 0.00, '', 0.00, 0.00, '', '', 0.00, 0.00, NULL, '', '', '', 0.00 ); END // DELIMITER ;