CREATE DEFINER=`root`@`localhost` PROCEDURE `SPRegistrarReceiptsIntoBalanceLibro`()
BEGIN
	declare done int default 0;
	declare person_id, periodo_id, conta_tipo_asiento_id, comprobante_id int;
    declare fecha_registracion_libro date;
    declare total decimal(20,2) default 0.00;
    
    
    DECLARE table_receipt CURSOR FOR 
	SELECT person_id_owner , period_id as periodo, type_id, id, receipt_date, amount FROM receipts;

    


	DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;

	OPEN table_receipt;
	REPEAT

	FETCH table_receipt INTO person_id, periodo_id, conta_tipo_asiento_id,comprobante_id,fecha_registracion_libro,total;

		
        IF conta_tipo_asiento_id = 1 THEN
  				set conta_tipo_asiento_id := 2;
  			ELSEIF conta_tipo_asiento_id = 2 THEN
  				set conta_tipo_asiento_id := 3;
			ELSEIF conta_tipo_asiento_id = 3 THEN
  				set conta_tipo_asiento_id := 7;
			ELSEIF conta_tipo_asiento_id = 4 THEN
  				set conta_tipo_asiento_id := 8;
			ELSEIF conta_tipo_asiento_id = 5 THEN
  				set conta_tipo_asiento_id := 9;
			ELSEIF conta_tipo_asiento_id = 6 THEN
  				set conta_tipo_asiento_id := 6;
		END IF;
        
        -- este if tiene que estar sino agrega un registro mas
		IF NOT done THEN
			insert into balance_libro 
				(person_id, period_id, conta_tipo_asiento_id, receipt_id,fecha_registracion, total )
					VALUES
                (person_id, periodo_id, conta_tipo_asiento_id, comprobante_id,fecha_registracion_libro, total );
                
            
        END IF;

	UNTIL done END REPEAT;

  	CLOSE table_receipt;
  	
  
  END