using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.ComponentModel; using System.Workflow.ComponentModel; using System.Workflow.ComponentModel.Compiler; using RM.Lib; using RM.Lib.Workflow; using RM.Lib.WinForms; using RM.Mov.Processos; using System.Drawing; namespace RM.Spx.Exemplo.Activities { /// /// Atividade de formula visual para cancelamento de movimento /// /// Atributo que define categoria de FV. [RMSActivityCategory(typeof(Properties.Resources), "SCategoryTreinamentoActivity")] [RMSDescription(typeof(Properties.Resources), "sActivityCancelMovimento")] [ToolboxBitmap(typeof(Properties.Resources), "Resources.Imagem.png")] public class CancelarMovimentoActivity : RMSActivity { #region [Dados de contexto] /// /// Informações do contexto /// [Browsable(false)] public RMSContext Contexto { get; protected set; } /// /// Inicializar a classe /// /// protected override void Initialize(IServiceProvider provider) { base.Initialize(provider); Contexto = BrokerService.GetContext(); } #endregion [Dados de contexto] #region [Propriedades] //Define que a propriedade Parametro como DependencyProperty public static readonly DependencyProperty ColigadaProperty = DependencyProperty.Register("Coligada", typeof(int?), typeof(CancelarMovimentoActivity)); //donotlocalize public static readonly DependencyProperty IdMovimentoProperty = DependencyProperty.Register("IdMovimento", typeof(int?), typeof(CancelarMovimentoActivity)); //donotlocalize public static readonly DependencyProperty MotivoCancelamentoProperty = DependencyProperty.Register("MotivoCancelamento", typeof(string), typeof(CancelarMovimentoActivity)); //donotlocalize public static readonly DependencyProperty ApagaMovRelacProperty = DependencyProperty.Register("ApagaMovRelac", typeof(bool?), typeof(CancelarMovimentoActivity)); //donotlocalize [RMSDescription(typeof(Properties.Resources), "SDescriptionColigada")]//donotlocalize [Category("Parametros")]//donotlocalize public int? Coligada { get { return base.GetValue(ColigadaProperty) as int?; } set { base.SetValue(ColigadaProperty, value); } } [RMSDescription(typeof(Properties.Resources), "SDescriptionIdMovimento")]//donotlocalize [Category("Parametros")]//donotlocalize public int? IdMovimento { get { return base.GetValue(IdMovimentoProperty) as int?; } set { base.SetValue(IdMovimentoProperty, value); } } [RMSDescription(typeof(Properties.Resources), "SDescriptionMotivoCancelamento")]//donotlocalize [Category("Parametros")]//donotlocalize public string MotivoCancelamento { get { return base.GetValue(MotivoCancelamentoProperty) as string; } set { base.SetValue(MotivoCancelamentoProperty, value); } } [RMSDescription(typeof(Properties.Resources), "SDescriptionApagaRelac")]//donotlocalize [Category("Parametros")]//donotlocalize public bool? ApagaMovRelac { get { return base.GetValue(ApagaMovRelacProperty) as bool?; } set { base.SetValue(ApagaMovRelacProperty, value); } } #endregion //Implementacao da regra de negocio protected override void OnExecute() { IRMSProcess processoCancelamento = RMSBroker.CreateServer("MovCancelMovProc"); //Le classe de parametros default do processo MovCancelMovProcParams parametroCancelamento = (MovCancelMovProcParams) processoCancelamento.ReadParams(null); parametroCancelamento.MovimentosACancelar = new List(); MovimentosCancelar movimento = new MovimentosCancelar(); parametroCancelamento.MovimentosACancelar.Add(movimento); parametroCancelamento.Context = Contexto; //Dados passados por parametro movimento.CodColigada = RMSConvert.ToInt32(Coligada,0); movimento.IdMov = RMSConvert.ToInt32(IdMovimento, 0); movimento.MotivoCancelamento = MotivoCancelamento; //Dados default movimento.DataCancelamento = DBS.ServerNow(); movimento.CodUsuarioLogado = Contexto.CodUsuario; movimento.CodSistemaLogado = Contexto.CodSistema; movimento.IdExercicioFiscal = Contexto.ExercicioFiscal; //Converte em classe generica RMSParamsProc paramsProc = (RMSParamsProc)parametroCancelamento; //Consome o processo padrao processoCancelamento.Execute(ref paramsProc); if (processoCancelamento.Status == RMSProcessStatus.Error) { throw new Exception(processoCancelamento.StatusMessage); } } } }