call spMante_Cambio_Cab(1, 5, '001-0000116', 1, '2011-11-20', 1, 1D21, 1, 1, 1);

DROP PROCEDURE IF EXISTS spMante_Cambio_Cab;
CREATE PROCEDURE spMante_Cambio_Cab(
  varLocal      int,
	varTipoDoc    int, 
	varDocumento  varchar(20),
  varCondicion  int,
  varFecha      date, 
  varCliente    int,
  varRuta       varchar(10),
  varLista      int,
  varVendedor   int,
  varUsuario    int
  )
BEGIN  
	DECLARE varNum      int;
  DECLARE varTipo     char(3);
  DECLARE varAbrevDoc varchar(20);
  DECLARE varNumDoc   varchar(20);
  
	SELECT if(isnull(MAX(id_venta)),0,MAX(id_venta))+1 INTO varNum FROM _sv_venta;  
  SELECT tipo INTO varTipo FROM _sv_tipo_condicion WHERE id_condicion = varCondicion;
  SELECT abrev INTO varAbrevDoc FROM _sv_tipo_doc_venta WHERE id_tipo_doc = varTipoDoc;
  
  SET varNumDoc   = spFuncion_NumeroDocumento(varTipoDoc);
  
  /*Registramos Cabecera de la Venta*/	
  insert into _sv_venta (id_venta, id_local, id_cliente, id_vendedor, id_ruta, id_lista, fecha_emision, id_tipo_doc, nro_documento, id_condicion,
                         estado, subtotal, igv, total, saldo, _date_create, _date_update, _user_create, _user_update)
	VALUES (varNum, varLocal, varCliente, varVendedor, varRuta, varLista, varFecha, varTipoDoc, varNumDoc, varCondicion,
         'AC', 0, 0, 0, 0, NOW(), NOW(), varUsuario, varUsuario);                     
  
  /*REGISTRAMOS LA VENTA EN MOVIMIENTO CUENTA */
  -- insert into _sv_movimiento_cuenta_cxc(id_cliente, id_venta, id_pago_cxc, tipo_mov, fecha, monto, _date_create, _date_update, _user_create, _user_update)
  -- values (varCliente, varNum, NULL, 'VEN', varFecha, varTotal, NOW(), NOW(), varUsuario, varUsuario);
  
  
  /*SI ES CONTADO REGISTRAMOS EL PAGO EN EL MOVIMIENTO CUENTA*/  
  -- if varTipo='CO' then    
  --  insert into _sv_movimiento_cuenta_cxc(id_cliente, id_venta, id_pago_cxc, tipo_mov, fecha, monto, _date_create, _date_update, _user_create, _user_update)
  --  values(varCliente, varNum, NULL, 'PAG', varFecha, varTotal, NOW(), NOW(), varUsuario, varUsuario);     
  --  update _sv_venta set estado='CA', saldo=0 where id_venta = varNum;
  -- end if;
  
  /*ACTUALIZAMOS EL CORRELATIVO DEL TIPO DE DOCUMENTO*/
  UPDATE _sv_tipo_doc_venta
  SET secuencia = secuencia + 1
  where id_tipo_doc = varTipoDoc;
  
SELECT varNum;
  
END;
