コード例 #1
0
 public void Approve(int userId, int userDestinoId, string obs)
 {
     if (WFWorkflow.ActualizarUltimoUsuario(Queries.WF_ActualizarUltimaAprobacionPedido, Pedidos.PedidoId.ToString(), userId))
     {
         WFWorkflow.EnviarMensaje(WS.Eventos.SOLICITUD_APROBADA, WorkflowId, Pedidos.PedidoId, userDestinoId, obs);
     }
 }
コード例 #2
0
 public void Revise(int userId, int userDestinoId, string obs)
 {
     if (WFWorkflow.ActualizarUltimoUsuario(Queries.WF_ActualizarUltimaAprobacionPedido, Pedidos.PedidoId.ToString(), userId))
     {
         WFWorkflow.EnviarMensaje(WS.Eventos.RECHAZADO_PARCIAL, WorkflowId, Pedidos.PedidoId, userDestinoId, obs);
     }
 }
コード例 #3
0
 public void Send(int userId, int userDestinoId, string obs)
 {
     if (Save(userId) > 0)
     {
         // status 11 es Por corregir, esto ocurre si es devuelto el formulario pues hay que volverlo a enviar
         if (Pagos.StatusId == 11)
         {
             if (!WFWorkflow.ActualizarUltimoUsuario(Queries.WF_ActualizarUltimaAprobacionPedido, Pagos.PagoId.ToString(), userId) ||
                 !WFWorkflow.EnviarMensaje(WS.Eventos.SOLICITUD_CORREGIDA, WorkflowId, Pagos.PagoId, userDestinoId, obs, "PAGOS"))
             {
                 //lblError.Text = ESMensajes.ObtenerMensaje(425);
                 return;
             }
         }
         else // se está enviando por primera vez el formulario
         {
             if (WFWorkflow.ActualizarUltimoUsuario(Queries.WF_ActualizarUltimaAprobacionPedido, Pagos.PagoId.ToString(), userId) &&
                 WFWorkflow.EnviarMensaje(WS.Eventos.CREAR_SOLICITUD, WorkflowId, Pagos.PagoId, userId, userDestinoId, "PAGOS"))
             {
                 WFWorkflow.EnviarMensaje(WS.Eventos.INCLUIR_SOLICITUD, WorkflowId, Pagos.PagoId, userDestinoId, obs);
             }
             else
             {
                 //lblError.Text = ESMensajes.ObtenerMensaje(425);
                 return;
             }
         }
     }
 }
コード例 #4
0
        public int Save(int userId)
        {
            pedido                = pedido ?? new WFSublimacionPedidos();
            pedido.TipoTransId    = 1;      // 1 el cliente está realizando un abono
            pedido.MotivoId       = int.Parse(ddlTipoTransaccion.SelectedValue);
            pedido.EmpleadoId     = userId; // _usuarioLogueado
            pedido.CentroId       = 1;      // 1 es Caracas, San Martín
            pedido.NumTrans       = txtNroTransaccion.Text;
            pedido.IvaAplicable   = 0.12m;
            pedido.MontoTotal     = Convert.ToDecimal(txtMonto.Text);
            pedido.FechaTrans     = Convert.ToDateTime(txtCalendario.Text);
            pedido.FechaActual    = DateTime.Now;
            pedido.FechaDeEntrega = DiasDeEntrega(DateTime.Now);
            pedido.Observaciones  = txtObservaciones.Text;

            WFSublimacionPedidos.InsertarPedido(pedido);
            if (pedido.TransId > 0 && pedido.EstatusId == 0)
            {
                if (WFWorkflow.ActualizarUltimoUsuario(Queries.WF_ActualizarUltimaAprobacionTrans, pedido.TransId.ToString(), userId))
                {
                    WFWorkflow.EnviarMensaje(WS.Eventos.CREAR_SOLICITUD, WorkflowId, pedido.TransId, userId, userId);
                }
            }

            return(pedido.TransId);
        }
コード例 #5
0
        private void CargarDocumentos()
        {
            int intCodModulo = ((WFModulo)arrModulos[Modulo]).intCodModulo;

            ddlDocumento.DataSource     = WFWorkflow.ListarWorkflows(intCodModulo);
            ddlDocumento.DataValueField = "Id";
            ddlDocumento.DataTextField  = "Name";
            ddlDocumento.DataBind();

            int Id = ((WFWorkflow)WFWorkflow.ListarWorkflows(intCodModulo)[Documento]).Id;

            WorkflowId                 = Id == 0 ? -1 : Id;
            txtDescription.Text        = ((WFWorkflow)WFWorkflow.ListarWorkflows(intCodModulo)[Documento]).Description;
            ddlDocumento.SelectedIndex = Documento;

            //if(Documento != 0)
            //{
            //    Label lblError = (Label)Page.FindControl("lblError");
            //    lblError.Visible = false;
            //}

            Label lblNombre = (Label)Global.FindMyControl(Page, "lblNombre");

            lblNombre.Text = ((WFWorkflow)WFWorkflow.ListarWorkflows(intCodModulo)[Documento]).Name;
        }
コード例 #6
0
 private void CargarDocumentos()
 {
     ddlTipoDocumento.DataSource = WFWorkflow.ListarWorkflows(Convert.ToInt32(ddlModulo.SelectedValue));
     ddlTipoDocumento.DataValueField = "Id";
     ddlTipoDocumento.DataTextField = "Name";
     ddlTipoDocumento.DataBind();
 }
コード例 #7
0
 private void CargarWorkFlow()
 {
     if (Convert.ToInt32(ddlModulo.SelectedValue) > 0)
     {
         ddlWorkFlow.DataSource = WFWorkflow.ListarWorkflows(Convert.ToInt32(ddlModulo.SelectedValue));
         ddlWorkFlow.DataValueField = "Id";
         ddlWorkFlow.DataTextField = "Name";
         ddlWorkFlow.DataBind();
     }
 }
コード例 #8
0
        private void CargarWFInicial()
        {
            ArrayList  arrWF      = new ArrayList();
            WFWorkflow objInicial = new WFWorkflow(0, 0, "[Seleccione]", "");

            arrWF.Insert(0, objInicial);
            ddlWorkFlow.DataSource     = arrWF;
            ddlWorkFlow.DataValueField = "Id";
            ddlWorkFlow.DataTextField  = "Name";
            ddlWorkFlow.DataBind();
        }
コード例 #9
0
        public int Save(int userId)
        {
            string strData = "<root>";

            strData += "<Descripcion NombreClt='" + textbox1.Text + "' ";
            strData += "KilosPreQ='" + textbox2.Text + "' ";
            strData += "NombreDelSolici='" + textbox3.Text + "' ";
            strData += "KilosDeCojin='" + textbox4.Text + "' ";
            strData += "CodigoDePedido='" + textbox5.Text + "' ";
            strData += "KilosDeCordon='" + textbox6.Text + "' ";
            strData += "FechaPedido='" + textbox7.Text + "' ";
            strData += "KilosDeCemento='" + textbox8.Text + "' ";
            strData += "TipoFT='" + textbox9.Text + "' ";
            strData += "TiraAlfa='" + textbox10.Text + "' ";
            strData += "PesoEnKg='" + textbox11.Text + "' ";
            strData += "KilosDePintura='" + textbox12.Text + "'/>";
            strData += "</root>";

            Pedidos                   = Pedidos ?? new WFFormularioPedidos();
            Pedidos.UserId            = userId; // _usuarioLogueado
            Pedidos.FechaIngreso      = DateTime.Now;
            Pedidos.FechaModificacion = DateTime.Now;
            Pedidos.DatoXml           = strData;
            //Pedidos.StatusId: 1 es creado y 0 es no registrado en el workflow
            Pedidos.DocumentoId  = 2;
            Pedidos.NombreClt    = textbox1.Text;
            Pedidos.KilosPreQ    = textbox2.Text;
            Pedidos.NombreSoli   = textbox3.Text;
            Pedidos.KilosCojin   = textbox4.Text;
            Pedidos.Codigo       = Convert.ToInt32(textbox5.Text == string.Empty ? "0" : textbox5.Text);
            Pedidos.KilosCordon  = textbox6.Text;
            Pedidos.Fecha        = DateTime.Now;
            Pedidos.KilosCemento = textbox8.Text;
            Pedidos.Contenedor   = textbox9.Text;
            Pedidos.KilosAlfa    = textbox10.Text;
            Pedidos.PesoTotal    = textbox11.Text;
            Pedidos.KilosPintura = textbox12.Text;

            Pedidos.PedidoId = WFFormularioPedidos.InsertarPedidos(Pedidos);
            if (Pedidos.PedidoId > 0 && Pedidos.StatusId == 0)
            {
                if (WFWorkflow.ActualizarUltimoUsuario(Queries.WF_ActualizarUltimaAprobacionPedido, Pedidos.PedidoId.ToString(), userId))
                {
                    WFWorkflow.EnviarMensaje(WS.Eventos.CREAR_SOLICITUD, WorkflowId, Pedidos.PedidoId, userId, userId);
                }
            }

            return(Pedidos.PedidoId);
        }
コード例 #10
0
        public ArrayList Approvers(int userId, out int last)
        {
            string pedidoId = Pedidos == null || Pedidos.StatusId == 11 || Pedidos.StatusId == 1 ? "0" : Pedidos.PedidoId.ToString();

            last = 0; // si pedidoId es 0 no existe o espera correción por lo tanto ni siquiera es el ultimo
            string ruta = String.Empty;

            if (pedidoId == "0")
            {
                // se consultan las políticas según lo que aparece en el formulario
                ruta = WFWorkflow.ObtenerRuta(WorkflowId, userId, "ClienteAlDia", "CreditoSuficiente", "HayEnAlmacen");
            }
            else
            {
                last = WFWorkflow.UltimoDestino(WorkflowId, pedidoId);
            }

            return(WFAprobadores.ListarAprobadores(WorkflowId, pedidoId, ruta));
        }
コード例 #11
0
 private void CargarWF()
 {
     if (Convert.ToInt32(ddlModulo.SelectedValue) > 0)
     {
         ArrayList arrWF = new ArrayList();
         arrWF = WFWorkflow.ListarWorkflows(Convert.ToInt32(ddlModulo.SelectedValue));
         //				arrWF.RemoveAt(0);
         //				WFWorkflow objInicial = new WFWorkflow(0,0,"Todos","");
         //				arrWF.Insert(0,objInicial);
         ddlWorkFlow.DataSource     = arrWF;
         ddlWorkFlow.DataValueField = "Id";
         ddlWorkFlow.DataTextField  = "Name";
         ddlWorkFlow.DataBind();
     }
     else
     {
         CargarWFInicial();
         CargarInicial();
     }
 }
コード例 #12
0
 public void Send(int userId, int userDestinoId, string obs)
 {
     //if (Save(userId) > 0) // significa que se guardo un pedidoId válido
     //{
     // status 11 es Por corregir, esto ocurre si es devuelto el formulario pues hay que volverlo a enviar
     if (Pedidos.StatusId == 11)
     {
         if (!WFWorkflow.ActualizarUltimoUsuario(Queries.WF_ActualizarUltimaAprobacionPedido, Pedidos.PedidoId.ToString(), userId) ||
             !WFWorkflow.EnviarMensaje(WS.Eventos.SOLICITUD_CORREGIDA, WorkflowId, Pedidos.PedidoId, userDestinoId, obs, "ClienteAlDia", "CreditoSuficiente", "HayEnAlmacen"))
         {
             //lblError.Text = ESMensajes.ObtenerMensaje(425);
             return;
         }
     }
     else // se está enviando por primera vez el formulario
     {
         if (WFWorkflow.ActualizarUltimoUsuario(Queries.WF_ActualizarUltimaAprobacionPedido, Pedidos.PedidoId.ToString(), userId) &&
             WFWorkflow.EnviarMensaje(WS.Eventos.CREAR_SOLICITUD, WorkflowId, Pedidos.PedidoId, userId, userDestinoId, "ClienteAlDia", "CreditoSuficiente", "HayEnAlmacen"))
         {
             WFWorkflow.EnviarMensaje(WS.Eventos.INCLUIR_SOLICITUD, WorkflowId, Pedidos.PedidoId, userDestinoId, obs);
         }
         else
         {
             //lblError.Text = ESMensajes.ObtenerMensaje(425);
             return;
         }
     }
     //}
     //else
     //{
     //    //if (S == 0)
     //    //    lblError.Text = ESMensajes.ObtenerMensaje(168);
     //    //else
     //    //{
     //    //    if (S == -2) lblError.Text = ESMensajes.ObtenerMensaje(660);
     //    //    return;
     //    //}
     //}
 }
コード例 #13
0
        private void btnReversar_Click(object sender, System.EventArgs e)
        {
            ArrayList arrWorkFlow = new ArrayList();

            for (int intI = 0; intI < dgdWorkflow.Items.Count; intI++)
            {
                if (((CheckBox)dgdWorkflow.Items[intI].FindControl("chkSeleccione")).Checked)
                {
                    WFSolicitudWF objNuevo = new WFSolicitudWF();
                    objNuevo.shtWorkFlow              = Convert.ToInt16(((Label)dgdWorkflow.Items[intI].FindControl("lblCodWF")).Text);
                    objNuevo.strReferencia            = Convert.ToString(((Label)dgdWorkflow.Items[intI].FindControl("lblReferencia")).Text);
                    objNuevo.strSolicitante           = Convert.ToString(((Label)dgdWorkflow.Items[intI].FindControl("lblNumSolicitud")).Text);
                    objNuevo.intCodUltimoAprobador    = Convert.ToInt32(txtCodigoEmpleado.Text);
                    objNuevo.intCodSiguienteAprobador = Convert.ToInt32(txtCodigoEmpleadoD.Text);
                    WFSolicitudWF.ActualizarAprobadorHistorico(objNuevo.shtWorkFlow, objNuevo.strReferencia, objNuevo.strSolicitante, objNuevo.intCodSiguienteAprobador);
                    WFWorkflow.EnviarMensaje(WS.Eventos.CAMBIO_DE_DESTINATARIO, objNuevo.shtWorkFlow, objNuevo.strReferencia, objNuevo.intCodSiguienteAprobador, objNuevo.intCodUltimoAprobador);
                    arrWorkFlow.Add(objNuevo);
                }
            }

            LimpiarDestino();
        }
コード例 #14
0
        protected void btnDel_Click(object sender, System.EventArgs e)
        {
            System.Web.UI.WebControls.TreeView wft = (System.Web.UI.WebControls.TreeView)Web.Global.FindMyControl(Page, "wfTreeView");
            System.Web.UI.WebControls.TreeNode tn  = Global.GetNodeFromPath(wft.Nodes, NodeIndex);
            if (tn == null || tn.ChildNodes.Count > 1)
            {
                return;
            }

            if (lstEscogencia.SelectedIndex > -1 && tn.Value[0] == 'R')
            {
                if (lstEscogencia.Items.Count > 1)
                {
                    int       ID    = Convert.ToInt32(tn.Value.Substring(2));
                    ArrayList rutas = WFGrupoDeRoles.ObtenerGruposDeRoles(ID, tn.Text);

                    string camino = "";
                    int    i      = 0;
                    for (int j = rutas.Count; i < j; i++)
                    {
                        if (((WFGrupoDeRoles)rutas[i]).intCodRoles != Convert.ToInt32(lstEscogencia.SelectedValue))
                        {
                            camino += ((WFGrupoDeRoles)rutas[i]).intCodRoles.ToString() + ";";
                        }
                    }

                    if (WFWorkflow.InsertarCamino(Int32.Parse(tn.Value.Substring(2)), camino))
                    {
                        FirstTime = true;
                        Initialize();
                    }
                }
                else
                {
                    int ID = Convert.ToInt32(tn.Value.Substring(2));

                    if (WFWorkflow.BorrarCamino(ID))
                    {
                        FirstTime = true;
                        Initialize();
                    }
                }
            }


            /*
             * Microsoft.Web.UI.WebControls.TreeView tvw = (Microsoft.Web.UI.WebControls.TreeView)Page.FindControl("tvWorkflow");
             *          //NodeIndex = tvw.SelectedNodeIndex;
             *          Microsoft.Web.UI.WebControls.TreeNode tn = tvw.GetNodeFromIndex(tvw.SelectedNodeIndex);
             *
             *          if (lstEscogencia.SelectedIndex > -1 && tn.NodeData[0] != 'N')
             *          {
             *                  if(lstEscogencia.Items.Count > 1)
             *                  {
             *                          int ID = Convert.ToInt32(tn.NodeData);
             *                          ArrayList rutas = WFGrupoDeRoles.ObtenerGruposDeRoles(ID,tn.Text);
             *
             *                          string camino = "";
             *                          int i = 0;
             *                          for(int j=rutas.Count; i<j; i++)
             *                          {
             *                                  if(((WFGrupoDeRoles)rutas[i]).intCodRoles != Convert.ToInt32(lstEscogencia.SelectedValue))
             *                                          camino += ((WFGrupoDeRoles)rutas[i]).intCodRoles.ToString() + ";";
             *                          }
             *
             *                          if (WFWorkflow.InsertarCamino(Int32.Parse(tn.NodeData),camino))
             *                          {
             *                                  FirstTime = true;
             *                                  Initialize();
             *                          }
             *                  }
             *                  else
             *                  {
             *                          int ID = Convert.ToInt32(tn.NodeData);
             *
             *                          if (WFWorkflow.BorrarCamino(ID))
             *                          {
             *                                  FirstTime = true;
             *                                  Initialize();
             *                          }
             *                  }
             *          }
             * */
        }
コード例 #15
0
        public IResultServiceModel <WFFileState> SetInitialStateForFile(File file, string userId)
        {
            IResultServiceModel <WFFileState> rm = new ResultServiceModel <WFFileState>();
            var        now      = DateTime.Now;
            WFWorkflow workflow = null;
            string     wfCode   = this.appConfigurationService.DefaultFileWorkflowCode;

            //Get the customer for the file before to find out what Workflow it needs
            if (file.WFWorkflow != null)
            {
                workflow = file.WFWorkflow;
                wfCode   = workflow.Code;
            }
            else if (file.WFWorkflowId.HasValue)
            {
                var rmWF = this.GetWorkflowById(file.WFWorkflowId.Value);
                if (rmWF.Success)
                {
                    workflow = rmWF.Value;
                }
                else
                {
                    workflow = null;
                }
            }

            if (workflow == null)
            {
                var rmWF = this.GetWorkflowByCode(wfCode);
                if (rmWF.Success)
                {
                    workflow = rmWF.Value;
                }
                else
                {
                    workflow = null;
                }
            }

            var rmIS = this.wfStateRepository.GetInitialStateByWorkflowCode(wfCode);

            if (rmIS.Success)
            {
                var state = rmIS.Value;
                if (workflow == null)
                {
                    workflow = state.WFWorkflows.Where(w => w.WFWorkflow.Code == wfCode).Select(w => w.WFWorkflow).FirstOrDefault();
                }

                //put the workflow id and version to the file;
                if (workflow != null)
                {
                    file.WFWorkflowId      = workflow.Id;
                    file.WFWorkflowVersion = workflow.WFWorkflowVersion;
                    this.fileRepository.Update(file);
                    this.fileRepository.Save();
                }


                var fHis = new WFFileState()
                {
                    EntityId  = file.Id,
                    UserId    = userId,
                    WFStateId = rmIS.Value.Id,
                    TS        = now
                };

                fHis.Notes.Add(new WFFileStateNote()
                {
                    UserId = userId, TS = now, Comment = state.Name
                });

                this.wfFileStateRepository.Add(fHis);
                var rmSave = this.wfFileStateRepository.Save();

                if (rmSave.Success)
                {
                    rm = this.wfFileStateRepository.GetById(fHis.Id);
                    //rm.OnSuccess(state);
                }
                else
                {
                    rm.OnError(rmSave.ErrorMessage, rmSave.ErrorCode);
                }
            }
            else
            {
                rm.OnError(rmIS.ErrorMessage, rmIS.ErrorCode);
            }

            return(rm);
        }
コード例 #16
0
 public void Approve(int userId, int userDestinoId, string obs)
 {
     WFWorkflow.EnviarMensaje(WS.Eventos.SOLICITUD_APROBADA, WorkflowId, Pagos.PagoId, userDestinoId, obs);
 }
コード例 #17
0
 public void Revise(int userId, int userDestinoId, string obs)
 {
     WFWorkflow.EnviarMensaje(WS.Eventos.RECHAZADO_PARCIAL, WorkflowId, Pagos.PagoId, userDestinoId, obs);
 }
コード例 #18
0
 private void ddlTipoDocumento_SelectedIndexChanged(object sender, System.EventArgs e)
 {
     WorkflowId = (ddlTipoDocumento.SelectedValue == "0") ? Convert.ToInt32(-1) : Convert.ToInt32(ddlTipoDocumento.SelectedValue);
     txtDescripcion.Text = ((WFWorkflow)WFWorkflow.ListarWorkflows(Convert.ToInt32(ddlModulo.SelectedValue))[ddlTipoDocumento.SelectedIndex]).Description;
 }