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);
}
}
}
}