예제 #1
0
        protected void BtnFinalizarPermiso_Click(object sender, EventArgs e)
        {
            try
            {
                if (DDlFinalizarPermiso.SelectedValue.Equals("1"))
                {
                    String    vQuery        = "RSP_ObtenerPermisos 3," + Session["USUARIO"] + "," + LbFinalizarPermiso.Text;
                    DataTable vDatosPermiso = vConexion.obtenerDataTable(vQuery);

                    String vResponse = String.Empty;
                    String vMensaje  = String.Empty;
                    foreach (DataRow item in vDatosPermiso.Rows)
                    {
                        SapConnector vConnector = new SapConnector();
                        vResponse = vConnector.postPermiso(
                            Convert.ToDateTime(item["fechaInicio"].ToString()),
                            Convert.ToDateTime(item["fechaRegreso"].ToString()),
                            item["CodigoSAP"].ToString(),
                            item["TipoPermisoCodigo"].ToString(),
                            item["SubTipoPermiso"].ToString(),
                            item["Motivo"].ToString(),
                            ref vMensaje
                            );
                    }

                    switch (vResponse)
                    {
                    case "":
                        Mensaje("Error al enviar a SAP", WarningType.Success);
                        break;

                    case "0":

                        vQuery = "RSP_ObtenerPermisos 4,"
                                 + Session["USUARIO"] + ","
                                 + LbFinalizarPermiso.Text + ",1";
                        int vDatos = vConexion.ejecutarSql(vQuery);

                        if (vDatos.Equals(1))
                        {
                            Mensaje("El empleado ha sido autorizado en SAP", WarningType.Success);
                        }
                        else
                        {
                            Mensaje("El empleado ha sido autorizado en SAP, pero no inserto la verificación", WarningType.Success);
                        }
                        break;

                    case "1":
                        Mensaje(vMensaje, WarningType.Success);
                        break;
                    }
                }
                else
                {
                    String vQuery = "RSP_ObtenerPermisos 4,"
                                    + Session["USUARIO"] + ","
                                    + LbFinalizarPermiso.Text + ",0";
                    int vDatos = vConexion.ejecutarSql(vQuery);

                    if (vDatos.Equals(1))
                    {
                        Mensaje("Se ha cancelado el permiso", WarningType.Success);
                    }
                    else
                    {
                        Mensaje("No se ha podido cancelar el servicio en el sistema, contacte a sistemas", WarningType.Success);
                    }
                }
                CerrarModal("FinalizarModal");
            }
            catch (Exception Ex)
            {
                Mensaje(Ex.Message, WarningType.Danger);
            }
        }
        protected void BtnFinalizarPermiso_Click(object sender, EventArgs e)
        {
            try{
                if (DDlFinalizarPermiso.SelectedValue.Equals("1"))
                {
                    String    vQuery        = "RSP_ObtenerPermisos 3," + Session["USUARIO"] + "," + LbFinalizarPermiso.Text;
                    DataTable vDatosPermiso = vConexion.obtenerDataTable(vQuery);

                    String vResponse = String.Empty;
                    String vMensaje  = String.Empty;
                    foreach (DataRow item in vDatosPermiso.Rows)
                    {
                        SapConnector vConnector = new SapConnector();
                        vResponse = vConnector.postPermiso(
                            Convert.ToDateTime(item["fechaInicio"].ToString()),
                            Convert.ToDateTime(item["fechaRegreso"].ToString()),
                            item["CodigoSAP"].ToString(),
                            item["TipoPermisoCodigo"].ToString(),
                            item["SubTipoPermiso"].ToString(),
                            item["Motivo"].ToString(),
                            ref vMensaje
                            );
                    }

                    switch (vResponse)
                    {
                    case "":
                        Mensaje("Error al enviar a SAP", WarningType.Success);
                        break;

                    case "0":

                        vQuery = "RSP_ObtenerPermisos 4,"
                                 + Session["USUARIO"] + ","
                                 + LbFinalizarPermiso.Text + ",1";
                        int vDatos = vConexion.ejecutarSql(vQuery);

                        if (vDatos.Equals(1))
                        {
                            Mensaje("El empleado ha sido autorizado en SAP", WarningType.Success);
                        }
                        else
                        {
                            Mensaje("El empleado ha sido autorizado en SAP, pero no inserto la verificación", WarningType.Success);
                        }

                        break;

                    case "1":
                        Mensaje(vMensaje, WarningType.Success);
                        break;
                    }

                    CerrarModal("FinalizarModal");
                    CargarAutorizaciones();
                }
                else
                {
                    if (TxMotivo.Text == string.Empty || TxMotivo.Text == "")
                    {
                        Label2.Text = "Favor ingresar el motivo de cancelación.";
                    }
                    else
                    {
                        String vQuery = "RSP_ObtenerPermisos 4,"
                                        + Session["USUARIO"] + ","
                                        + LbFinalizarPermiso.Text + ",0,'" + TxMotivo.Text + "'";
                        int vDatos = vConexion.ejecutarSql(vQuery);

                        if (vDatos.Equals(1))
                        {
                            String vQueryCancelacion = "RSP_ObtenerPermisos 2,"
                                                       + Session["USUARIO"] + ","
                                                       + LbFinalizarPermiso.Text + ","
                                                       + 0;
                            int vDatosCancelacion = vConexion.ejecutarSql(vQueryCancelacion);

                            vQuery = "RSP_ObtenerPermisos 3," + Session["USUARIO"] + "," + LbFinalizarPermiso.Text;
                            DataTable vDatosBusqueda = vConexion.obtenerDataTable(vQuery);

                            foreach (DataRow itemEmpleado in vDatosBusqueda.Rows)
                            {
                                SmtpService vService = new SmtpService();
                                vService.EnviarMensaje(itemEmpleado["correo"].ToString(),
                                                       typeBody.Rechazado,
                                                       itemEmpleado["nombre"].ToString(),
                                                       "Razón de Cancelación: " + TxMotivo.Text
                                                       );

                                if (vDatosBusqueda.Rows[0]["TipoPermiso"].ToString() == "DÍAS/HORAS COMPENSATORIOS")
                                {
                                    Boolean  vDia       = itemEmpleado["FechaRegreso"].ToString() == itemEmpleado["FechaInicio"].ToString() ? true : false;
                                    TimeSpan tsHorario  = Convert.ToDateTime(itemEmpleado["FechaRegreso"]) - Convert.ToDateTime(itemEmpleado["FechaInicio"]);
                                    Decimal  vDiasHoras = tsHorario.Hours + (Convert.ToDecimal(tsHorario.Minutes) / 60);
                                    vDiasHoras = vDia ? 8 : vDiasHoras;
                                    String vCalculo = vDiasHoras.ToString().Contains(",") ? vDiasHoras.ToString().Replace(",", ".") : vDiasHoras.ToString();

                                    String vEmpleado = "";
                                    if (itemEmpleado["idEmpleadoJefe"].ToString() == itemEmpleado["usuarioCreacion"].ToString())
                                    {
                                        vEmpleado = itemEmpleado["idEmpleadoJefe"].ToString();
                                    }
                                    else
                                    {
                                        vEmpleado = itemEmpleado["CodigoSAP"].ToString();
                                    }

                                    vQuery = "[RSP_Compensatorio] 1,'" + vEmpleado + "', 2,NULL,'" + Session["USUARIO"].ToString() + "',NULL," + vCalculo + "," + itemEmpleado["idPermiso"].ToString();
                                    int vInfo = vConexion.ejecutarSql(vQuery);
                                }
                            }

                            Mensaje("Se ha cancelado el permiso", WarningType.Success);
                        }
                        else
                        {
                            Mensaje("No se ha podido cancelar el servicio en el sistema, contacte a sistemas", WarningType.Success);
                        }

                        CerrarModal("FinalizarModal");
                        CargarAutorizaciones();
                    }
                }
            }catch (Exception Ex) {
                Mensaje(Ex.Message, WarningType.Danger);
            }
        }