Es posible consolidar el movimiento de dos item diferentes

Categoría: FaQ Visto: 1639

En ocasiones puedes crear por error dos item que realmente son el mismo.

Es posible consolidar el movimiento de dos item en uno solo? 

La respuesta acertada es: Si pero no se recomienda. y no te damos ninguna garantía de que no tengas problemas luego de hacerlo. Pero si aun asi deseas intentarlo este es el script que hemos probado para este proceso.  

NOTA IMPORTANTE: 

Si decides hacer uso de este script, deberás reprocesar el inventario y la cartera.

 

Como hacerlo ?

En la siguiente imagen te mostramos los datos que debes ajustar, Señalado en rojo @ItemOrigen, este será el item que vamos a consolidar en otro, señalado en verde @ItemDestino, en este item se consolidará todo el movimiento de @ItemOrigen, solo reemplaza en ambos casos el 0 (cero) por el identificador del item apropiado según tus necesidades.

 

 Copia el texto que sigue o descarga el archivo de acá script consolidar items

--INICIO SCRIPT CONSOLIDAR
begin transaction ConsolidarItem
declare @ItemOrigen numeric 
        , @ItemDestino numeric 
        , @StrdescipcionConcepto char(254)
        , @Numidprecio numeric 
set @ItemOrigen = 10210
set @ItemDestino = 10212

select @Numidprecio = Numidprecio
    from Merlin_ListaPreciosdetalle 
    where NumIdConcepto = @ItemDestino
select @StrdescipcionConcepto = StrDescripcionConcepto 
      from Merlin_ConceptosFacturacion 
      where NumIdConcepto = @ItemDestino 
update Merlin_Movimientos
      set   NumIdConcepto = @ItemDestino
        ,   NumIdprecio = @Numidprecio
        ,   StrObservacionConcepto = @StrdescipcionConcepto 
      where NumIdConcepto = @ItemOrigen
if @@error != 0 begin
    rollback transaction ConsolidarItem
end else begin 
    update Merlin_MovimientosCxC
        set NumIdConcepto = @ItemDestino
        where NumIdConcepto = @ItemOrigen
    if @@error != 0 begin
        rollback transaction ConsolidarItem
    end else begin 
        update Merlin_Movimientos_Novedades
            set    NumIdConcepto = @ItemDestino
                ,   StrObservacionConcepto = @StrdescipcionConcepto 
                ,   NumIdprecio = @Numidprecio
            where NumIdConcepto = @ItemOrigen
        if @@error != 0 begin
            rollback transaction ConsolidarItem
        end else begin 
            update Merlin_Movimientos_Pedidos
                set   NumIdConcepto = @ItemDestino
                    ,   StrObservacionConcepto = @StrdescipcionConcepto 
                    ,   NumIdprecio = @Numidprecio
                where NumIdConcepto = @ItemOrigen       
            if @@error != 0 begin
                rollback transaction ConsolidarItem 
            end else begin 
                delete from Merlin_INV_MaestroInventarios
                    where NumIdConcepto = @ItemOrigen         
                delete from Merlin_Inv_HistoricoInventario
                    where NumIdConcepto = @ItemOrigen         
                if @@error != 0 begin
                    rollback transaction ConsolidarItem 
                end else begin
                    delete from ParadigmaN_Cartera_Saldos
                        where NumIdConcepto = @ItemOrigen
                    if @@error != 0 begin
                        rollback transaction ConsolidarItem 
                    end else begin
                        delete from merlin_ListaPreciosDetalle_Activa
                            where NumIdConcepto = @ItemOrigen
                        if @@error != 0 begin
                            rollback transaction ConsolidarItem 
                        end else begin
                            print 'Borrar Lista precios '
                            update Merlin_Movimientos set NumIdprecio = @Numidprecio 
                                where NumIdConcepto = @ItemDestino 
                                    and NumIdprecio in (select NumIdprecio from Merlin_ListaPreciosdetalle where NumIdConcepto = @ItemOrigen)
                            update Merlin_Movimientos_Novedades set NumIdprecio = @Numidprecio 
                                where NumIdConcepto = @ItemDestino 
                                    and NumIdprecio in (select NumIdprecio from Merlin_ListaPreciosdetalle where NumIdConcepto = @ItemOrigen)
                            update Merlin_Movimientos_Pedidos set NumIdprecio = @Numidprecio 
                                where NumIdConcepto = @ItemDestino 
                                    and NumIdprecio in (select NumIdprecio from Merlin_ListaPreciosdetalle where NumIdConcepto = @ItemOrigen)
                            delete from Merlin_ListaPreciosdetalle
                                where NumIdConcepto = @ItemOrigen                        
                            if @@error != 0 begin
                                rollback transaction ConsolidarItem 
                            end else begin
                                commit transaction ConsolidarItem
                            end
                        end 
                    end    
                end 
            end 
        end 
    end 
end
--FIN SCRIPT CONSOLIDAR 

 

 

Necesitas ayuda para ejecutar un script? acá te mostramos

 

IMPORTANTE: 

No se ofrece garantía sobre este script ni el proceso de ejecución, usted asume todos los riesgos si decide ejecutarlo, por favor haga una copia de seguridad antes de proceder. si tiene dudas o requiere asesoría, por favor comuníquese con soporte técnico. 

Imprimir