U bevindt zich nu op een technische pagina over de software Mercator. Deze pagina bevat specifieke informatie die bestemd is voor professionals van de software Mercator. Wenst u naar algemenere informatie over Mercator door te gaan?


   Deze vraag niet meer stellen

Resourcebeheer per halve dagen

0000002560     -      29-06-2016

In Mercator is het mogelijk om de resources te beheren per halve dagen. Deze frequentie is automatisch beschikbaar in het rolmenu van het tabblad "Resources" van de fiches waar het resourcebeheer is geactiveerd.

In de Gantt-grafieken worden de periodes als volgt genoteerd:

  • 01/01/1900 AM: voormiddag
  • 01/01/1900 PM: namiddag

In de zones waarin men meteen gegevens kan invoeren in het formaat "datum-tijd" (datetime), moeten de periodes als volgt worden ingevoerd:

  • 01/01/1900 00:00: voormiddag
  • 01/01/1900 12:00: namiddag

Om de parameterinstelling van Mercator met betrekking tot deze functionaliteit te vereenvoudigen, werden 2 Xfuncties toegevoegd:

  • XampmToTime: conversie van een tekenreeks 01/01/1900 AM of 01/01/1900 PM in datetime-formaat 01/01/1900 00:00 of 01/01/1900 12:00
  • XtimeToAmpm: conversie van een tijdsmelding 01/01/1900 00:00 of 01/01/1900 12:00 in een tekenreeks 01/01/1900 AM of 01/01/1900 PM

De voorbeelden in deze rubriek moeten worden aangepast om te beantwoorden aan het beheer per halve dagen

In voorbeeld 1 moet de trigger TR_LIGNESV_RESS_STOCK_INS worden gewijzigd door toevoeging van dit blok onder het blok /* VERIFICATIE OF ALLE GEBRUIKTE "UUR"-RESOURCES BESTAAN */

/* VERIFICATIE OF ALLE GEBRUIKTE "HALVE DAG"-RESOURCES BESTAAN */

select @info=rtrim(stock.s_modele)+' '+convert(char(10),inserted.moment1,103)+'-'+convert(char(10),inserted.moment2,103)
        from inserted inner join STOCK on (inserted.id_article=stock.s_id)
        cross join DEMIJOURS 
        left join RESS on (ress.module='STOCK') and (inserted.id_article=ress.id_sig) and (demijours.sequence=ress.moment1) where (stock.s_ress='D') and (demijours.sequence>=dbo.ROUNDTIME(inserted.moment1,stock.s_ress)) and (demijours.sequence<=dbo.ROUNDTIME(inserted.moment2,stock.s_ress)) and (ress.id is null)
if @info is not null
        begin
                set @info='Ressource inexistante : '+@info+' !' 
                ROLLBACK TRAN RAISERROR ( @info,16,1 ) 
                RETURN
        end

en dit blok onder het blok /* TOEVOEGINGEN VAN RESOURCEVERBRUIK PER "UUR" */

/* TOEVOEGINGEN VAN RESOURCEVERBRUIK PER "HALVE DAG" */

insert into RESSDATA (module,id_sig,id,id2,origine,q,couleur,texte)
        select 'STOCK',inserted.id_article,ress.id,right(newid(),10),'V_'+inserted.id+inserted.journal+str(inserted.piece,10)+inserted.dl_id,inserted.q,dbo.type_v(inserted.id,inserted.journal,inserted.piece),dbo.tiers_v(inserted.id,inserted.journal,inserted.piece) 
        from inserted cross join DEMIJOURS inner join RESS on (ress.module='STOCK') and (inserted.id_article=ress.id_sig) and (demijours.sequence=ress.moment1) 
        where (demijours.sequence>=dbo.ROUNDTIME(inserted.moment1,ress.ress)) and (demijours.sequence<=dbo.ROUNDTIME(inserted.moment2,ress.ress)) and (ress.ress='D') and (inserted.q<>0)

 


 

In voorbeeld 2 moet de trigger TR_LIGNESV_RESS_PROJ_INS worden gewijzigd door toevoeging van dit blok onder het blok /* VERIFICATIE OF ALLE GEBRUIKTE "UUR"-RESOURCES BESTAAN */

/* VERIFICATIE OF ALLE GEBRUIKTE "HALVE DAG"-RESOURCES BESTAAN */

select @info=rtrim(proj.p_nom)+' '+convert(char(10),inserted.moment1,103)+'-'+convert(char(10),inserted.moment2,103) 
        from inserted inner join PROJ on (inserted.id_projet=proj.p_id) 
        cross join DEMIJOURS 
        left join RESS on (ress.module='PROJ') and (inserted.id_projet=ress.id_sig) and (demijours.sequence=ress.moment1) 
        where (proj.p_ress='D') and (demijours.sequence>=dbo.ROUNDTIME(inserted.moment1,proj.p_ress)) and (demijours.sequence<=dbo.ROUNDTIME(inserted.moment2,proj.p_ress)) and (ress.id is null)
if @info is not null 
        begin 
                set @info='Ressource inexistante : '+@info+' !' 
                ROLLBACK TRAN 
                RAISERROR ( @info,16,1 ) 
                RETURN 
        end

en dit blok onder het blok /* TOEVOEGINGEN VAN RESOURCEVERBRUIK PER "UUR" */

/* TOEVOEGINGEN VAN RESOURCEVERBRUIK PER "HALVE DAG" */

insert into RESSDATA (module,id_sig,id,id2,origine,q,couleur,texte) 
        select 'PROJ',inserted.id_projet,ress.id,right(newid(),10),'V_'+inserted.id+inserted.journal+str(inserted.piece,10)+inserted.dl_id,inserted.q_ress,dbo.type_v(inserted.id,inserted.journal,inserted.piece),inserted.texte 
        from inserted 
        cross join DEMIJOURS 
        inner join RESS on (ress.module='PROJ') and (inserted.id_projet=ress.id_sig) and (demijours.sequence=ress.moment1) 
        where (demijours.sequence>=dbo.ROUNDTIME(inserted.moment1,ress.ress)) and (demijours.sequence<=dbo.ROUNDTIME(inserted.moment2,ress.ress)) and (ress.ress='D') and (inserted.q_ress<>0)

 


 

 

In voorbeeld 3 moet de trigger TR_LIGNESA_RESS_DEST_INS worden gewijzigd door toevoeging van dit blok onder het blok /* VERIFICATIE OF ALLE GEBRUIKTE "UUR"-RESOURCES BESTAAN */

/* VERIFICATIE OF ALLE GEBRUIKTE "HALVE DAG"-RESOURCES BESTAAN */

select @info=rtrim(dest.d_nom)+' '+convert(char(10),inserted.moment1,103)+'-'+convert(char(10),inserted.moment2,103) 
        from inserted inner join DEST on (inserted.id_destin=dest.d_id) 
        cross join DEMIJOURS  left join RESS on (ress.module='DEST') and (inserted.id_destin=ress.id_sig) and (demijours.sequence=ress.moment1) 
        where (dest.d_ress='D') and (demijours.sequence>=dbo.ROUNDTIME(inserted.moment1,dest.d_ress)) and (demijours.sequence<=dbo.ROUNDTIME(inserted.moment2,dest.d_ress)) and (ress.id is null)
if @info is not null 
        begin 
                set @info='Ressource inexistante : '+@info+' !' 
                ROLLBACK TRAN 
                RAISERROR ( @info,16,1 ) 
                RETURN 
        end

en dit blok onder het blok /* TOEVOEGINGEN VAN RESOURCEVERBRUIK PER "UUR" */

/* TOEVOEGINGEN VAN RESOURCEVERBRUIK PER "HALVE DAG" */

insert into RESSDATA (module,id_sig,id,id2,origine,q,couleur,texte) 
        select 'DEST',inserted.id_destin,ress.id,right(newid(),10),'A_'+inserted.id+inserted.journal+str(inserted.piece,10)+inserted.dl_id,inserted.q_ress,inserted.atelier,inserted.designatio 
        from inserted 
        cross join DEMIJOURS  
        inner join RESS on (ress.module='DEST') and (inserted.id_destin=ress.id_sig) and (demijours.sequence=ress.moment1) 
        where (demijours.sequence>=dbo.ROUNDTIME(inserted.moment1,ress.ress)) and (demijours.sequence<=dbo.ROUNDTIME(inserted.moment2,ress.ress)) and (ress.ress='D') and (inserted.q_ress<>0)